【发布时间】:2014-05-05 04:44:38
【问题描述】:
我想使用 .net Threadpool 或 Task 库,但我无法找到有关机器关闭时线程会发生什么情况的任何信息。我的假设是所有已添加但尚未完成的任务都将丢失。但是,也许我对并行任务或线程池有错误的想法。
场景很简单。我添加了一堆任务:
Task.Factory.StartNew(doSomeWork);
然后有人进来关闭这台机器。如果任务没有完成怎么办?机器是等待,还是只是关闭?有没有办法让它等到它被关闭?
【问题讨论】:
-
你试过了吗?我的意思是用
.Sleep(60000)(5 分钟)加载几个任务然后关机应该不难。 -
操作系统关心的是进程,而不是线程。请务必响应操作系统向您发送的关闭请求,您没有留下任何痕迹来猜测哪种方式合适。
-
我用 ThreadPool 尝试过,实际上确实丢失了任务,但我还没有用 Task 尝试过。我希望有某种内置的关闭管理,而我只是在文档中错过了它。听起来不像。
标签: c# parallel-processing threadpool