VBNET(Visual BasicNET)是为适应Microsoft NET框架的需要对Visual Basic进行了重大改造后的开发工具它比Visual Basic 功能更强大更易于使用其中最重要的变化就是对象继承在VBNET中所有可管理的类型都衍生自SystemObject作为编程工具最重要的一个特性就是垃圾碎片的回收它由CLR(Common Language Runtime)进行控制并提供更好的内存管理功能通用的类型定义可以提供更好的互操作性和协同工作能力因此VBNET显得更强大更具可靠性
在VBNET中大多数CLR内建的类型都在System名字空间里已经定义了比如SystemObject SystemInt 和 SystemString要注意的是一个名字空间可能嵌在另一个名字空间内象SystemData里就有SystemDataDataSet的类
代表是CLR编程模型很重要的一个新概念代表是一个特殊类型的可管理的类当你创建一个代表的实例时你必须提供一个带有匹配签名的方法执行的地址一旦创建了一个代表的实例调用方法将变的很容易
过去我们利用VB开发多线程的应用程序时是一件很令人痛苦的事经常是多线程的程序运行是会变成多错误的程序!但在VBNET中这种状况已经大为改观现在我们利用VBNET处理多线程和利用JAVA处理多线程一样简单了下面我们就举个例子来看看VBNET的多线程吧!
下面是多线程程序threadtestvb的代码
imports System
imports SystemThreading
public class AClass
public sub Method()
Dim i as integer
For i = to
ConsoleWriteline(这是类AClass方法method的内容i)
next
end sub
public sub Method()
Dim i as integer
For i = to
ConsoleWriteline(这是类AClass方法method的内容i)
next
end sub
end class
public class ThreadTest
public shared sub Main()
dim obj as new aclass
dim thth as thread
th=new Thread(new ThreadStart(addressof thod))
thstart
th=new Thread(new ThreadStart(addressof thod))
thstart
dim i as integer
For i= to
ConsoleWriteLine(Main方法里的内容i)
Next
end sub
end class
现在来让我们剖析一下上面的例子
我们创建了我们自己的类AClass并创建了两个方法Method和Method
这两个方法很简单只有一个For循环向输出设备输出一些信息
我们还定义了另外一个类ThreadTest来使用上面创建的类AClass
在Main()方法中我们创建了类Thread的实例
类Thread可以在SystemThreading名字空间里得到它定义了处理线程的属性和方法
在类Thread的构造器中我们使用了类ThreadStart类ThreadStart是一个代表标志着当一个线程开始时就开始执行定义的方法
为了执行定义的方法我们实际调用的是线程的Start()方法
用VBC来编译上面的程序vbc /out:threadtestexe threadtestvb
运行编译后的程序我们将会看到我们定义的两个方法和main()方法的混合输出这就说明每一个方法都在自己的线程下运行
除了上面的方法线程还有下面常用的方法
Stop():停止线程的运行
Suspend()暂停线程的运行
Resume()继续线程的运行
Sleep()停止线程一段时间(单位为毫秒)