600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > vb.net-多线程并行计算(1)

vb.net-多线程并行计算(1)

时间:2024-04-15 07:04:50

相关推荐

vb.net-多线程并行计算(1)

Imports SystemImports System.ThreadingModule Module1Sub Main()Dim mythread1 As ThreadDim mythread2 As ThreadDim mythread3 As Thread'创建线程对象mythread1 = New Thread(AddressOf mythreadrun)mythread2 = New Thread(AddressOf mythreadrun)mythread3 = New Thread(AddressOf mythreadrun)Console.WriteLine(Now.ToLongTimeString & "线程对象创建完毕,开始执行线程")'执行线程mythread1.Start("线程1")mythread2.Start("线程2")mythread3.Start("线程3")'等待线程完成mythread1.Join()mythread2.Join()mythread3.Join()'线程执行完毕Console.WriteLine(Now.ToLongTimeString & "线程执行完毕!")End SubPublic Sub mythreadrun(ByVal data As Object)Console.WriteLine(data & "," & Now.ToLongTimeString & "执行")End SubEnd Module

Dim mythread1 As Thread

初始化Thread 类的新实例,指定允许对象在线程启动时传递给线程的委托。

线程不会在创建时开始执行。 若要为执行而调度线程,调用start方法。

上面代码创建了3个thread对象,然后调用它们的start方法执行它们

调用join方法等它们执行完毕

可在中建立一个新的Console应用程序,然后在模块中编写以上代码

New Thread(AddressOf mythreadrun)

构造函数中必须将要做为线程执行的函数做为参数传入

mythread1.Start(“线程1”)

start方法可以在执行线程时,向其传入参数

Imports System

Imports System.Threading

程序需要导入以上命名空间

Imports SystemImports System.ThreadingModule Module1Sub Main()Dim mythread1 As ThreadDim mythread2 As ThreadDim mythread3 As Thread'创建线程对象mythread1 = New Thread(AddressOf mythreadrun)mythread2 = New Thread(AddressOf mythreadrun)mythread3 = New Thread(AddressOf mythreadrun)Console.WriteLine(Now.ToLongTimeString & "线程对象创建完毕,开始执行线程")'执行线程mythread1.Start("线程1")mythread2.Start("线程2")mythread3.Start("线程3")'等待线程完成mythread1.Join()mythread2.Join()mythread3.Join()'线程执行完毕Console.WriteLine(Now.ToLongTimeString & "线程执行完毕!")End SubPublic Sub mythreadrun(ByVal data As Object)Dim mynum As IntegerDim jg As Integermynum = 20TryFor mynum = 20 To -20 Step -1jg = 1000 / mynumConsole.WriteLine(data & ":" & Now.ToLongTimeString & ",1000 / " & mynum & "计算结果为:" & jg)Thread.Sleep(1)NextCatchConsole.WriteLine(data & ":" & Now.ToLongTimeString & "线程异常终止!")'终止线程Thread.CurrentThread.Abort()End TryEnd SubEnd Module

在线程中计算1000/mynum的值,其中mynum从20开始递减,到0时会出现除0异常,调用Thread.CurrentThread.Abort()

完成终止线程的操作

TryFor mynum = 20 To -20 Step -1jg = 1000 / mynumConsole.WriteLine(data & ":" & Now.ToLongTimeString & ",1000 / " & mynum & "计算结果为:" & jg)Thread.Sleep(1)NextCatchConsole.WriteLine(data & ":" & Now.ToLongTimeString & "线程异常终止!")'终止线程Thread.CurrentThread.Abort()End Try

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。