Mik*_*els 14 .net c# multithreading
我已经看到了一些具有类似这样的线程过程的示例.
private void ThreadProc()
{
while (serviceStarted)
{
// do some work
Thread.Sleep(new TimeSpan(0, 0, 5));
}
Thread.CurrentThread.Abort();
}
Run Code Online (Sandbox Code Playgroud)
最后Abort()
真的有必要吗?
反对召唤有很多论据 Abort()
Abort()
抛出异常,这通常比退出过程更耗费资源.我想解释为什么这是一个好的做法或者不是一个好的做法.
调用Thread.Abort()
确实会引发异常,如果您正在编写将被重用的代码(或基础库的一部分),则其他开发人员很难处理ThreadAbortExcpetion
s.
本文将介绍可靠性最佳实践.
我总是听说调用Thread.Join()
是一种更好的方法,如果你可以等到线程完成处理.
我不知道是否有人认为这是一个好习惯.它可能导致死锁(因为抛出异常时未正确清理非托管资源)
归档时间: |
|
查看次数: |
17243 次 |
最近记录: |