我有一个单独的BackgroundWorker和ThreadPool,它在后台执行方法。 (用于UI反馈的BackgroundWorker)
线程池:
while (_isFinished)
{
// Do stuff
}
我知道我需要使用一个标志安全地终止我的BackgroundWorker,考虑到它给了我一个异常,如果我没有它就关闭它。但是,ThreadPool没有。 (Closing不会抛出任何异常)
BackgroundWorker_DoWork:
{{1}}
因此有必要对ThreadPool采取同样的预防措施吗?
提前致谢。
答案 0 :(得分:3)
没有
ThreadPool threads, according to MSDN是后台线程,在主执行线程退出后不会使应用程序保持活动状态。当应用程序退出时,它们也会停止执行。
如果在应用程序关闭期间关闭,后台线程也会do not throw exceptions。