自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

深入解讀VB.NET多線程代碼示例

開(kāi)發(fā) 后端
初學(xué)者們可以通過(guò)這篇文章節(jié)的相關(guān)內(nèi)容對(duì)VB.NET多線程的相關(guān)操作技巧進(jìn)行一個(gè)詳細(xì)的了解。然后在實(shí)踐中操作一番,牢固所掌握的知識(shí)。

我們今天先來(lái)了解一下有關(guān)VB.NET多線程的相關(guān)概念,希望大家可以從中獲得一些幫助,從另一角度來(lái)詳細(xì)的解讀VB.NET中的一些基礎(chǔ)概念,掌握應(yīng)用技巧,提高我們?cè)诔绦蜷_(kāi)發(fā)中的效率。#t#

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中,所有可管理的類型都衍生自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開(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(
    "這是類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(
    "這是類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 th1,th2 as thread   
  21. th1=new Thread(new 
    ThreadStart(addressof obj.method1))   
  22. th1.start   
  23. th2=new Thread(new 
    ThreadStart(addressof obj.method2))   
  24. th2.start   
  25. dim i as integer   
  26. For i1 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)建了我們自己的類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è)線程開(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í)間(單位為毫秒)。

上面只是VB.NET多線程的一個(gè)簡(jiǎn)單的例子,希望對(duì)大家有所啟發(fā)!

責(zé)任編輯:曹凱 來(lái)源: 博客園
相關(guān)推薦

2010-01-19 17:03:25

VB.NET可執(zhí)行語(yǔ)句

2010-01-20 14:32:12

VB.NET轉(zhuǎn)換運(yùn)算符

2010-01-13 09:31:39

VB.NET窗體打印

2010-01-18 18:06:07

VB.NET多線程

2009-10-23 09:26:09

VB.NET多線程

2010-01-18 15:01:02

VB.NET異常迭代捕

2010-01-14 09:55:06

VB.NET IEnu

2010-01-08 14:50:47

VB.NET測(cè)試硬盤速

2010-01-14 13:08:37

VB.NET運(yùn)算符

2009-10-10 16:15:49

VB.NET開(kāi)發(fā)多線程

2009-10-20 10:59:32

VB.NET編程

2010-01-20 13:53:29

VB.NET分析電子郵

2009-10-20 10:23:08

VB.NET多線程編程

2009-10-27 12:20:06

VB.NET多線程應(yīng)用

2010-01-12 15:21:48

VB.NET權(quán)限控制

2009-10-21 10:05:30

VB.NET運(yùn)行環(huán)境

2010-01-21 10:12:57

VB.NET控件自動(dòng)排

2009-10-29 10:45:01

VB.NET設(shè)置控件

2010-01-18 16:58:29

VB.NET Over

2010-01-11 11:02:27

VB.NET調(diào)用存儲(chǔ)過(guò)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)