我看过许多类似以下这样的线程过程的示例。
private void ThreadProc()
{
while (serviceStarted)
{
// do some work
Thread.Sleep(new TimeSpan(0, 0, 5));
}
Thread.CurrentThread.Abort();
}
在结束时是否真的需要使用 Abort()
?
有许多反对调用 Abort()
的论点:
- 一旦过程退出——预期它已经完成了自我清理。
- 调用
Abort()
将会抛出一个异常,相比直接退出过程,这通常会消耗更多资源。
我想了解为什么这是或不是一个好的做法的解释。