永发信息网

vb.net中如何结束一个线程

答案:1  悬赏:80  手机版
解决时间 2021-04-06 22:26
vb.net中如何结束一个线程
最佳答案
vb.net中如何结束一个线程

一般而言,如果您想终止一个线程,您可以使用System.Threading.Thread类的Abort方法. 例如:
Dim worker As ThreadStart = New ThreadStart(AddressOf workerthreadmethod)
Dim t As Thread = New Thread(worker)
t.Start()
MessageBox.Show("Wait for a while for the thread to start.")
MessageBox.Show(t.ThreadState.ToString())
t.Abort()
MessageBox.Show(t.ThreadState.ToString())
t.Join()
MessageBox.Show(t.ThreadState.ToString())

当然,在调用Abort方法后,线程并不是立刻终止,要等线程的所有finally快中的代码完成后才会完全终止. 所以在主线程中可以用Join方法来同步,当线程还未完全终止时,t.Join()将处于等待,直到t线程完全结束后再继续执行后面的语句。
Abort方法是会导致线程跳出一个异常错误的,你需要在代码中捕获该异常。下面是一个比较完整的VB.NET线程例子:

Imports System
Imports System.Threading
Public Class MyTestApp

Public Shared Sub Main()
Dim t As New Thread(New ThreadStart(AddressOf MyThreadMethod))

'Start the thread
t.Start()
MsgBox("Are you ready to kill the thread?")

'Kill the child thread and this will cause the thread raise an exception
t.Abort()
' Wait for the thread to exit
t.Join()
MsgBox("The secondary thread has terminated.")

End Sub
Shared Sub MyThreadMethod()
Dim i As Integer
Try
Do While True
Thread.CurrentThread.Sleep(1000)
Console.WriteLine("This is the secondary thread running.")
Loop
Catch e As ThreadAbortException
MsgBox("This thread is going to be terminated by the Abort method in the Main function")
End Try
End Sub
End Class

Thread.Abort()方法用来永久销毁一个线程,而且将抛出ThreadAbortException异常。使终结的线程可以捕获到异常但是很难控制恢复,仅有的办法是调用Thread.ResetAbort()来取消刚才的调用,而且只有当这个异常是由于被调用线程引起的异常。因此,A线程可以正确的使用Thread.Abort()方法作用于B线程,但是B线程却不能调用Thread.ResetAbort()来取消Thread.Abort()操作。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
沛县哪找工作
什么狗粮里带肉松
单选题人的黑头发变成白头发是细胞衰老的表现
何谓良法?何为善治
如皋有交通银行吗?
别人说浓缩都是精华我要怎么回答他,
如果汽车排气管被堵了,不过没完全堵死,会怎样
幼儿园大班教案《手势比一比,》
梦幻西游结拜名字中的第二个字能选哪些字?
政府加大力度支持革命老区、民族地区、边疆地
关于扬帆的口号,扬帆启程?
因为幸福满溢,我怕的悲伤
误入契约迷情大亨免费读
蒲松龄的<狼>全文是以( )和( )表达方式
名人说的友情句子
推荐资讯
重在过程是什么意思?
3dmax中unknow class,no stand-in:super id=o
毕业给同学的留言诗句,关于篮球爱好者的毕业
帮助爱心传递的句子,体现别人无私帮助的诗句
软件开发需要学习哪些基础知识?
什么是祝福强化券?
某工厂一月份产值为5万元,二、三月份产值增
You can eat these two kinds of food, and
如何检查化妆品是否含铅汞
有关棒字的四个字成语
悠数学怎么退出班级。
锦绣画卷是什么意思
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?