.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
展开
 我来答
Ben
2014-05-04 · 知道合伙人软件行家
Ben
知道合伙人软件行家
采纳数:860 获赞数:2875
认真回答者.

向TA提问 私信TA
展开全部
按照线程运行的基本定义来说.如果内部没有死循环.执行完毕后将触发ThreadState.Stopped事件
追问
还真有死循环
ThreadState.Aborted 状态安全不?
追答
ThreadState.Aborted 状态安全不?

安全?这个内容是不存在安全不安全的问题.Abort如他的描述所述,是让线程抛异常,强制线程退出.
Aborted说白了就是微软自己搞了一个特殊的异常然后强制CATCH这个异常,同时触发该事件而已.

死循环如果心跳够短,使用全局变量遍历出退出状态退出循环亦可.

例如

bool breakThread=false;

public void ThreadMethod()
{

While(!breakThread)

{
你的代码...

}
}

如果在要跳出,,把breakThread改成true即可..
记住.前提是你的代码心跳要短
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式