是否有必要在 Application.Exit() 上结束线程池?
Is it necessary to end a ThreadPool on Application.Exit()?
我有一个单独的 BackgroundWorker 和 ThreadPool 在后台执行方法。 (UI 反馈的 BackgroundWorker)
线程池:
ThreadPool.QueueUserWorkItem(foo, null);
我知道我需要使用一个标志安全地终止我的 BackgroundWorker,因为如果我在没有标志的情况下关闭它,它会给我一个异常。但是,ThreadPool 没有。 (关闭不会抛出任何异常)
BackgroundWorker_DoWork:
while (_isFinished)
{
// Do stuff
}
那么ThreadPool是否有必要做同样的预防措施?
提前致谢。
没有
ThreadPool threads, according to MSDN,是后台线程,在主执行线程退出后不会让应用程序保持活动状态。当应用程序退出时,它们也会停止执行。
后台线程也会 do not throw exceptions 如果在应用程序关闭期间关闭。
我有一个单独的 BackgroundWorker 和 ThreadPool 在后台执行方法。 (UI 反馈的 BackgroundWorker)
线程池:
ThreadPool.QueueUserWorkItem(foo, null);
我知道我需要使用一个标志安全地终止我的 BackgroundWorker,因为如果我在没有标志的情况下关闭它,它会给我一个异常。但是,ThreadPool 没有。 (关闭不会抛出任何异常)
BackgroundWorker_DoWork:
while (_isFinished)
{
// Do stuff
}
那么ThreadPool是否有必要做同样的预防措施?
提前致谢。
没有
ThreadPool threads, according to MSDN,是后台线程,在主执行线程退出后不会让应用程序保持活动状态。当应用程序退出时,它们也会停止执行。
后台线程也会 do not throw exceptions 如果在应用程序关闭期间关闭。