.net c# 线程状态及控制问题
ThreadState.UnstartedThreadState.RunningThreadState.SuspendedThreadState.AbortedThrea...
ThreadState.Unstarted
ThreadState.Running
ThreadState.Suspended
ThreadState.Aborted
ThreadState.Stopped
问题1 如果线程被挂起,也就是ThreadState.Suspended状态,怎么结束进程
问题2 如何安全的结束线程 ,我用Abort() 方法,线程一般都是ThreadState.Aborted,怎么才能到ThreadState.Stopped 展开
ThreadState.Running
ThreadState.Suspended
ThreadState.Aborted
ThreadState.Stopped
问题1 如果线程被挂起,也就是ThreadState.Suspended状态,怎么结束进程
问题2 如何安全的结束线程 ,我用Abort() 方法,线程一般都是ThreadState.Aborted,怎么才能到ThreadState.Stopped 展开
1个回答
展开全部
按照线程运行的基本定义来说.如果内部没有死循环.执行完毕后将触发ThreadState.Stopped事件
追问
还真有死循环
ThreadState.Aborted 状态安全不?
追答
ThreadState.Aborted 状态安全不?
安全?这个内容是不存在安全不安全的问题.Abort如他的描述所述,是让线程抛异常,强制线程退出.
Aborted说白了就是微软自己搞了一个特殊的异常然后强制CATCH这个异常,同时触发该事件而已.
死循环如果心跳够短,使用全局变量遍历出退出状态退出循环亦可.
例如
bool breakThread=false;
public void ThreadMethod()
{
While(!breakThread)
{
你的代码...
}
}
如果在要跳出,,把breakThread改成true即可..
记住.前提是你的代码心跳要短
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询