VB.NET多線(xiàn)程實(shí)用方法解析
VB.NET編程語(yǔ)言的推出,幫助開(kāi)發(fā)人員極大的提高了開(kāi)發(fā)效率。在這里我們會(huì)為大家介紹一下VB.NET多線(xiàn)程的使用方法,從而了解這門(mén)語(yǔ)言給我們帶來(lái)的方便性,及特殊的編程方式,方便大家理解。#t#
很長(zhǎng)時(shí)間以來(lái),開(kāi)發(fā)人員一直要求微軟為VB增加更多的線(xiàn)程功能——這一點(diǎn)在VB.NET中終于實(shí)現(xiàn)了。VB6不支持創(chuàng)建多線(xiàn)程的EXE、DLL以及OCX。但這種措詞容易引起誤解,這是因?yàn)閂B6支持執(zhí)行多個(gè)單線(xiàn)程的單元。一個(gè)單元實(shí)際上是代碼執(zhí)行的場(chǎng)所而且單元的邊界限制了外部代碼對(duì)單元內(nèi)部的訪(fǎng)問(wèn)。
VB.NET支持創(chuàng)建自由線(xiàn)程的應(yīng)用程序。這意味著多個(gè)線(xiàn)程可以訪(fǎng)問(wèn)同一個(gè)共享的數(shù)據(jù)集。本文將帶領(lǐng)你了解多線(xiàn)程的基本內(nèi)容。
雖然VB支持多個(gè)單線(xiàn)程的單元,但并不支持允許多個(gè)線(xiàn)程在同一個(gè)數(shù)據(jù)集上運(yùn)行的自由線(xiàn)程模型。在很多情況下,產(chǎn)生一個(gè)運(yùn)行后臺(tái)處理程序的新線(xiàn)程會(huì)提高應(yīng)用程序的可用性。一種很顯然的情況就是當(dāng)執(zhí)行一個(gè)可能使窗體看起來(lái)停止響應(yīng)的長(zhǎng)過(guò)程時(shí),你一定會(huì)想在窗體上放置一個(gè)取消按鈕。
解決方法
由于VB.NET使用公共語(yǔ)言運(yùn)行時(shí)(Common Language Runtime),它增強(qiáng)了很多新的特性,其中之一便是創(chuàng)建自由線(xiàn)程應(yīng)用程序的能力。
在VB.NET中,開(kāi)始使利用VB.NET多線(xiàn)程進(jìn)行工作是很容易的。稍后我們會(huì)探究一些精妙之處,我們先創(chuàng)建一個(gè)簡(jiǎn)單的窗體,它生成一個(gè)執(zhí)行后臺(tái)處理程序的新線(xiàn)程。我們需要做的***件事是將要在新線(xiàn)程上運(yùn)行的后臺(tái)處理程序。下面的代碼執(zhí)行一個(gè)相當(dāng)長(zhǎng)的運(yùn)行過(guò)程——一個(gè)無(wú)限循環(huán):
- Private Sub Background
 
Process()- Dim i As Integer = 1
 - Do While True
 - ListBox1.Items.Add
 
("Iterations: " + i)- i += 1
 - Loop
 - End Sub
 
這段代碼無(wú)限地循環(huán)并在每次循環(huán)中向窗體上的列表框中增加一個(gè)條目。如果你對(duì)VB.NET不熟悉的話(huà),便會(huì)發(fā)現(xiàn)這段代碼中有一些在VB6中無(wú)法完成的事:
在聲明變量時(shí)對(duì)其賦值 Dim i As Integer=1
使用+=操作符 i+=1代替了i=i+1
Call關(guān)鍵字已經(jīng)被去除了
一旦我們有了一個(gè)工作過(guò)程,便需要將這段代碼指派給一個(gè)新的VB.NET多線(xiàn)程并開(kāi)始它的執(zhí)行。完成這項(xiàng)工作,我們需要使用Thread對(duì)象,它是.NET框架類(lèi)中System.Threading命名空間的一部分。當(dāng)實(shí)例化了一個(gè)新的Thread類(lèi)時(shí),我們向其傳遞一個(gè)引用,這個(gè)引用指向我們想要在Thread類(lèi)的構(gòu)造函數(shù)中執(zhí)行的代碼塊。下面的代碼創(chuàng)建一個(gè)新的Thread對(duì)象并將指向BackgroundProcess的引用傳遞給它:
- Dim t As Thread
 - t = New Thread
 
(AddressOf Me.
BackgroundProcess)- t.Start()
 
AddressOf操作符為BackgroundProcess方法創(chuàng)建了一個(gè)委派對(duì)象。委派在VB.NET中是一種類(lèi)型安全的、面向?qū)ο蟮暮瘮?shù)指針。在VB.NET多線(xiàn)程被實(shí)例化之后,你可以通過(guò)調(diào)用線(xiàn)程的Start()方法開(kāi)始執(zhí)行代碼。















 
 
 
 
 
 
 