溫馨提示×

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

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

VB.NET中怎么實(shí)現(xiàn)多線程

發(fā)布時(shí)間:2021-07-20 11:38:10 來(lái)源:億速云 閱讀:199 作者:Leah 欄目:編程語(yǔ)言

本篇文章為大家展示了VB.NET中怎么實(shí)現(xiàn)多線程,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。

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

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

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

過(guò)去,我們利用VB開(kāi)發(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多線程吧!

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

  1. imports System   

  2. imports System.Threading   

  3. public class AClass   

  4. public sub Method1()   

  5. Dim i as integer   

  6. For i = 1 to 100   

  7. Console.Writeline(
    "這是類(lèi)AClass方法method1的內(nèi)容",i)   

  8. next   

  9. end sub   

  10. public sub Method2()   

  11. Dim i as integer   

  12. For i = 1 to 100   

  13. Console.Writeline(
    "這是類(lèi)AClass方法method2的內(nèi)容",i)   

  14. next   

  15. end sub   

  16. end class   

  17. public class ThreadTest   

  18. public shared sub Main()   

  19. dim obj as new aclass   

  20. dim th2,th3 as thread   

  21. th2=new Thread(new 
    ThreadStart(addressof obj.method1))   

  22. th2.start   

  23. th3=new Thread(new 
    ThreadStart(addressof obj.method2))   

  24. th3.start   

  25. dim i as integer   

  26. For i= 1 to 100   

  27. Console.WriteLine(
    "Main方法里的內(nèi)容",i)   

  28. Next   

  29. end sub   

  30. end class  

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

1.我們創(chuàng)建了我們自己的類(lèi)AClass,并創(chuàng)建了兩個(gè)方法:Method1和Method2。

2.這兩個(gè)方法很簡(jiǎn)單,只有一個(gè)For循環(huán),向輸出設(shè)備輸出一些信息。

3.我們還定義了另外一個(gè)類(lèi)ThreadTest來(lái)使用上面創(chuàng)建的類(lèi)AClass。

4.在Main()方法中,我們創(chuàng)建了類(lèi)Thread的實(shí)例。

5.類(lèi)Thread可以在System.Threading名字空間里得到,它定義了處理線程的屬性和方法。

6.在類(lèi)Thread的構(gòu)造器中,我們使用了類(lèi)ThreadStart,類(lèi)ThreadStart是一個(gè)代表,標(biāo)志著當(dāng)一個(gè)線程開(kāi)始時(shí)就開(kāi)始執(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í)間(單位為毫秒)。

上述內(nèi)容就是VB.NET中怎么實(shí)現(xiàn)多線程,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向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