C# 具有while-true循环和try-catch的任务是否可以突然终止?
我遇到了这样一种情况,任务在运行数周后不知从何处停止,尽管代码是按照以下方式编写的C# 具有while-true循环和try-catch的任务是否可以突然终止?,c#,wcf,thread-safety,task,threadpool,C#,Wcf,Thread Safety,Task,Threadpool,我遇到了这样一种情况,任务在运行数周后不知从何处停止,尽管代码是按照以下方式编写的 Task t = Task.Factory.StartNew(() => { while(true) { try { some logic .... } catch(Exception ex) {} Thread.Sleep(1000); } }); 将任务更改为线程是否有助于解
Task t = Task.Factory.StartNew(() =>
{
while(true)
{
try
{
some logic ....
}
catch(Exception ex)
{}
Thread.Sleep(1000);
}
});
将任务更改为线程是否有助于解决上述问题?
代码构建为wcf服务,并托管在IIS中。已关闭IIS应用程序池重新启动,因此该任务不应受到影响?可能是
StackOverflowException
?这些是抓不到的。也可以捕获ThreadAbortException
,但当捕获处理程序退出时,它将重新启动。w3wp.exe工作进程是否处于活动状态?我想那个工人是因为另一个原因而崩溃的,你的回路死了。您的内存堆栈可能会耗尽,因为无休止的循环是危险的。已验证该特定服务的w3wp.exe工作程序仍然处于活动状态,并且在事件查看器中也没有捕获任何错误。T.T它可能是一个StackOverflowException
?这些是抓不到的。也可以捕获ThreadAbortException
,但当捕获处理程序退出时,它将重新启动。w3wp.exe工作进程是否处于活动状态?我想那个工人是因为另一个原因而崩溃的,你的回路死了。您的内存堆栈可能会耗尽,因为无休止的循环是危险的。已验证该特定服务的w3wp.exe工作程序仍然处于活动状态,并且在事件查看器中也没有捕获任何错误。T.T