您好,登錄后才能下訂單哦!
VB.NET編程語言的推出,幫助開發人員極大的提高了開發效率。在這里我們會為大家介紹一下VB.NET多線程的使用方法,從而了解這門語言給我們帶來的方便性,及特殊的編程方式,方便大家理解。
很長時間以來,開發人員一直要求微軟為VB增加更多的線程功能--這一點在VB.NET中終于實現了。VB6不支持創建多線程的EXE、DLL以及OCX.但這種措詞容易引起誤解,這是因為VB6支持執行多個單線程的單元。一個單元實際上是代碼執行的場所而且單元的邊界限制了外部代碼對單元內部的訪問。
VB.NET支持創建自由線程的應用程序。這意味著多個線程可以訪問同一個共享的數據集。本文將帶領你了解多線程的基本內容。
雖然VB支持多個單線程的單元,但并不支持允許多個線程在同一個數據集上運行的自由線程模型。在很多情況下,產生一個運行后臺處理程序的新線程會提高應用程序的可用性。一種很顯然的情況就是當執行一個可能使窗體看起來停止響應的長過程時,你一定會想在窗體上放置一個取消按鈕。
解決方法
由于VB.NET使用公共語言運行時(Common Language Runtime),它增強了很多新的特性,其中之一便是創建自由線程應用程序的能力。
在VB.NET中,開始使利用VB.NET多線程進行工作是很容易的。稍后我們會探究一些精妙之處,我們先創建一個簡單的窗體,它生成一個執行后臺處理程序的新線程。我們需要做的第一件事是將要在新線程上運行的后臺處理程序。下面的代碼執行一個相當長的運行過程--一個無限循環:
Private Sub BackgroundProcess()
Dim i As Integer = 1 Do While True
ListBox1.Items.Add("Iterations: " + i)
i += 1
Loop
End Sub
這段代碼無限地循環并在每次循環中向窗體上的列表框中增加一個條目。如果你對VB.NET不熟悉的話,便會發現這段代碼中有一些在VB6中無法完成的事:
在聲明變量時對其賦值 Dim i As Integer=1
使用+=操作符 i+=1代替了i=i+1
Call關鍵字已經被去除了
一旦我們有了一個工作過程,便需要將這段代碼指派給一個新的VB.NET多線程并開始它的執行。完成這項工作,我們需要使用Thread對象,它是。NET框架類中System.Threading命名空間的一部分。當實例化了一個新的Thread類時,我們向其傳遞一個引用,這個引用指向我們想要在Thread類的構造函數中執行的代碼塊。下面的代碼創建一個新的Thread對象并將指向BackgroundProcess的引用傳遞給它:
Dim t As Thread
t = New Thread(AddressOf Me.BackgroundProcess)
t.Start()
AddressOf操作符為BackgroundProcess方法創建了一個委派對象。委派在VB.NET中是一種類型安全的、面向對象的函數指針。在VB.NET多線程被實例化之后,你可以通過調用線程的Start()方法開始執行代碼
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。