首页 > 编程 > .NET > 正文

VB.NET多线程开发实例

2024-07-10 13:00:56
字体:
来源:转载
供稿:网友

最大的网站源码资源下载站,

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 /out:threadtest.exe threadtest.vb
9.运行编译后的程序,我们将会看到我们定义的两个方法和main()方法的混合输出,这就说明每一个方法都在自己的线程下运行。
10.除了上面的方法,线程还有下面常用的方法:
stop():停止线程的运行。
suspend():暂停线程的运行。
resume():继续线程的运行。
sleep():停止线程一段时间(单位为毫秒)。
 
上面只是vb.net多线程的一个简单的例子,希望对大家有所启发!
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表