c# 怎么检测线程状态,线程无论以什么状态停止,都必须开启?

如我开启了5个线程(不用定时器),这5个线程必须要24小时不停的运行,以下是我的代码:if(th==null){th=newThread(newThreadStart(R... 如我开启了5个线程(不用定时器),这5个线程必须要24小时不停的运行,以下是我的代码:
if (th == null)
{
th = new Thread(new ThreadStart(Run));
th.Start();
}
else if (th.ThreadState == System.Threading.ThreadState.Unstarted)
{
th.Start();
}
else if (th.ThreadState == System.Threading.ThreadState.Stopped)
{
th = new Thread(new ThreadStart(Run));
th.Start();
}
else if (th.ThreadState == System.Threading.ThreadState.Aborted)
{
th = new Thread(new ThreadStart(Run));
th.Start();
}

这个代码运行可能能行一直运行,但是运行几个小时后,我监控任务管理器,线程在一个一个的增加,也就是这一段代码可能方法一直在进if,有什么办法避免这种情况,无论线程里面是否异常,都要执行(就是定时器的功能一样)
展开
 我来答
syht2000
高粉答主

2017-04-11 · 关注我不会让你失望
知道大有可为答主
回答量:3万
采纳率:79%
帮助的人:1.4亿
展开全部
不是太明白你的需求,你线程如果不需要停止,在每个线程里都用while(true)之类的死循环就可以了,循环中如果需要停止一段时间可以用sleep之类的来停止一段时间。
更多追问追答
追问
我就是用了whiletrue,但是不知道为什么,可能异常的原因,最终他会跳出循环,所以我才想判断一下,要确保无限循环
追答
你没在while里用try catch捕捉错误么,在catch里加个日志写入看看倒底啥错误
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式