VB.NET(Visual Basic.NET)是為適應Microsoft .NET框架的需要,對Visual Basic進行了重大改造后的開發工具。它比Visual Basic 6.0功能更強大,更易于使用。其中最重要的變化就是對象繼承,在VB.NET中,所有可管理的類型都衍生自System.Object。作為編程工具,最重要的一個特性就是垃圾碎片的回收,它由CLR(Common Language Runtime)進行控制,并提供更好的內存管理功能。通用的類型定義可以提供更好的互操作性和協同工作能力,因此,VB.NET顯得更強大、更具可靠性。
在VB.NET中,大多數CLR內建的類型都在System名字空間里已經定義了。比如:System.Object,System.Int32, 和 System.String。要注意的是:一個名字空間可能嵌在另一個名字空間內,象System.Data里就有System.Data.DataSet的類。代表是CLR編程模型很重要的一個新概念。代表是一個特殊類型的可管理的類,當你創建一個代表的實例時,你必須提供一個帶有匹配簽名的方法執行的地址,一旦創建了一個代表的實例,調用方法將變的很容易。
過去,我們利用VB開發多線程的應用程序時,是一件很令人痛苦的事,經常是多線程的程序運行是會變成多錯誤的程序!但在VB.NET中,這種狀況已經大為改觀。現在,我們利用VB.NET處理多線程和利用JAVA處理多線程一樣簡單了。下面我們就舉個例子,來看看VB.NET的多線程吧!
下面是多線程程序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的內容",i) next end sub public sub Method2() Dim i as integer For i = 1 to 100 Console.Writeline("這是類AClass方法method2的內容",i) next end sub end class public class ThreadTest public shared sub Main() dim obj as new aclass dim th1,th2 as thread th1=new Thread(new ThreadStart(addressof obj.method1)) th1.start th2=new Thread(new ThreadStart(addressof obj.method2)) th2.start dim i as integer For i= 1 to 100 Console.WriteLine("Main方法里的內容",i) Next end sub end class 現在,來讓我們剖析一下上面的例子: 1.我們創建了我們自己的類AClass,并創建了兩個方法:Method1和Method2。 2.這兩個方法很簡單,只有一個For循環,向輸出設備輸出一些信息。 3.我們還定義了另外一個類ThreadTest來使用上面創建的類AClass。 4.在Main()方法中,我們創建了類Thread的實例。 5.類Thread可以在System.Threading名字空間里得到,它定義了處理線程的屬性和方法。 6.在類Thread的構造器中,我們使用了類ThreadStart,類ThreadStart是一個代表,標志著當一個線程開始時就開始執行定義的方法。 7.為了執行定義的方法,我們實際調用的是線程的Start()方法。 8.用VBC來編譯上面的程序:vbc /t:exe threadtest.vb 9.運行編譯后的程序,我們將會看到我們定義的兩個方法和main()方法的混合輸出,這就說明每一個方法都在自己的線程下運行。 10.除了上面的方法,線程還有下面常用的方法: Stop():停止線程的運行。 Suspend():暫停線程的運行。 Resume():繼續線程的運行。 Sleep():停止線程一段時間(單位為毫秒)。
|