溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

VB.NET開發(fā)多線程詳細(xì)講解

發(fā)布時(shí)間:2021-08-27 14:15:45 來(lái)源:億速云 閱讀:171 作者:chen 欄目:編程語(yǔ)言

這篇文章主要介紹“VB.NET開發(fā)多線程詳細(xì)講解”,在日常操作中,相信很多人在VB.NET開發(fā)多線程詳細(xì)講解問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”VB.NET開發(fā)多線程詳細(xì)講解”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

VB.NET(Visual Basic.NET)是為適應(yīng)Microsoft .NET框架的需要,對(duì)Visual Basic進(jìn)行了重大改造后的開發(fā)工具。它比Visual Basic 6.0功能更強(qiáng)大,更易于使用。其中最重要的變化就是對(duì)象繼承,在VB.NET中,所有可管理的類型都衍生自System.Object。作為編程工具,最重要的一個(gè)特性就是垃圾碎片的回收,它由CLR(Common Language Runtime)進(jìn)行控制,并提供更好的內(nèi)存管理功能。通用的類型定義可以提供更好的互操作性和協(xié)同工作能力,因此,VB.NET顯得更強(qiáng)大、更具可靠性。

在VB.NET中,大多數(shù)CLR內(nèi)建的類型都在System名字空間里已經(jīng)定義了。比如:System.Object, System.Int32, 和 System.String。要注意的是:一個(gè)名字空間可能嵌在另一個(gè)名字空間內(nèi),象System.Data里就有 System.Data.DataSet的類。

代表是CLR編程模型很重要的一個(gè)新概念。代表是一個(gè)特殊類型的可管理的類,當(dāng)你創(chuàng)建一個(gè)代表的實(shí)例時(shí),你必須提供一個(gè)帶有匹配簽名的方法執(zhí)行的地址,一旦創(chuàng)建了一個(gè)代表的實(shí)例,調(diào)用方法將變的很容易。

過(guò)去,我們利用VB.NET開發(fā)多線程的應(yīng)用程序時(shí),是一件很令人痛苦的事,經(jīng)常是多線程的程序運(yùn)行是會(huì)變成多錯(cuò)誤的程序!但在VB.NET中,這種狀況已經(jīng)大為改觀?,F(xiàn)在,我們利用VB.NET處理多線程和利用JAVA處理多線程一樣簡(jiǎn)單了。下面我們就舉個(gè)例子,來(lái)看看VB.NET開發(fā)多線程吧!

下面是多線程程序threadtest.vb的代碼:

imports System  imports System.Threading   public class AClass   public sub Method1()  Dim i as integer  For i = 1 to 100  Console.Writeline("這是類AClass方法method1的內(nèi)容",i)  next  end sub   public sub Method2()  Dim i as integer  For i = 1 to 100  Console.Writeline("這是類AClass方法method2的內(nèi)容",i)  next  end sub   end class   public class ThreadTest   public shared sub Main()  dim obj as new aclass  dim th2,th3 as thread   th2=new Thread(new ThreadStart(addressof obj.method1))  th2.start   th3=new Thread(new ThreadStart(addressof obj.method2))  th3.start   dim i as integer  For i= 1 to 100  Console.WriteLine("Main方法里的內(nèi)容",i)  Next  end sub   end class

現(xiàn)在,來(lái)讓我們剖析一下上面的例子:

1.我們創(chuàng)建了我們自己的類AClass,并創(chuàng)建了兩個(gè)方法:Method1和Method2。
2.這兩個(gè)方法很簡(jiǎn)單,只有一個(gè)For循環(huán),向輸出設(shè)備輸出一些信息。
3.我們還定義了另外一個(gè)類ThreadTest來(lái)使用上面創(chuàng)建的類AClass。
4.在Main()方法中,我們創(chuàng)建了類Thread的實(shí)例。
5.類Thread可以在System.Threading名字空間里得到,它定義了處理線程的屬性和方法。
6.在類Thread的構(gòu)造器中,我們使用了類ThreadStart,類ThreadStart是一個(gè)代表,標(biāo)志著當(dāng)一個(gè)線程開始時(shí)就開始執(zhí)行定義的方法。
7.為了執(zhí)行定義的方法,我們實(shí)際調(diào)用的是線程的Start()方法。
8.用VBC來(lái)編譯上面的程序:vbc /out:threadtest.exe threadtest.vb
9.運(yùn)行編譯后的程序,我們將會(huì)看到我們定義的兩個(gè)方法和main()方法的混合輸出,這就說(shuō)明每一個(gè)方法都在自己的線程下運(yùn)行。
10.除了上面的方法,線程還有下面常用的方法:
◆Stop():停止線程的運(yùn)行。
◆Suspend():暫停線程的運(yùn)行。
◆Resume():繼續(xù)線程的運(yùn)行。
◆Sleep():停止線程一段時(shí)間(單位為毫秒)。

到此,關(guān)于“VB.NET開發(fā)多線程詳細(xì)講解”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI