程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> VB.net2005多線程訪問界面控件

VB.net2005多線程訪問界面控件

編輯:.NET實例教程

費話不多說,下面的例子講的是如何在vb.Net2005中使用多線程訪問窗體上的用戶控件.請看代碼:

'///////////------王晶波-------///////////'
'-本例子由王晶波編寫
'主要在多線程程序中實現在線程中訪問窗體上的用戶控件
'希望對初學者有所幫助,高手請不要笑話!!!!!
'//////////-----特此聲明------///////////
Imports System.Threading
Public Class Form1
    Delegate Sub SetText(ByVal text As String) '聲明一個委托
    Dim i As Integer '定義一個變量,用來更新button2的text屬性
    Private Sub Btn_text() '定義一個方法,通過這個方法調用btn_settext來改變button2的text屬性
        Dim dh As SetText = New SetText(AddressOf Btn_SetText) '這句我也解釋不清是什麼意思,大家照著靈活一點用就是了。
        Me.Invoke(dh, New Object() {CStr(i)}) '和上面那句一樣
    End Sub
    Private Sub Btn_SetText(ByVal str As String) '這個大家都可以理解了,給屬性賦值
        Button2.Text = str
    End Sub
    Sub Add_text()
        For i = 0 To 100
            Btn_text()
            System.Threading.Thread.Sleep(100)
        Next
    End Sub
    Dim dh As System.Threading.Thread  '定義一個窗體級線程
    Private Sub Form1_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
        dh.Abort()  '結束線程,否則點關閉按鈕後無法正常結束程序.
    End Sub
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        dh = New System.Threading.Thread(AddressOf Add_text) '創建一個線程的實例
        dh.Start() '開始運行線程

    End Sub
End Class

以上代碼肯定可以運行,在網上找了好久也沒找到有關vb.net 是如何委托來實現改變控件屬性的,C#的倒是有一些,但是無法轉成VB.Net 來用,轉換時總會出來一些看不懂的東西,無法通過調試,希望這個例子能給初學多線程的朋友一些幫助,如果覺得有幫助,就留言,我也好高興一下!!!!!! 



  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved