C# 如果线程池中有项目,Windows服务器是否关闭

C# 如果线程池中有项目,Windows服务器是否关闭,c#,parallel-processing,threadpool,C#,Parallel Processing,Threadpool,我想使用.net线程池或任务库,但是我找不到任何关于机器关闭时线程会发生什么情况的信息。我的假设是,所有已添加但尚未完成的任务都将丢失。然而,也许我对并行任务或线程池的看法是错误的 情况很简单。我添加了一系列任务: Task.Factory.StartNew(doSomeWork); 然后有人来关闭这台机器。如果任务没有完成怎么办?机器是等待还是只是关机?有没有办法告诉它等到关机后再关机?你的应用程序需要专门监听指示系统正在关机的系统事件,但它负责解决如何处理这一问题 在一天结束时,它不能阻止

我想使用.net线程池或任务库,但是我找不到任何关于机器关闭时线程会发生什么情况的信息。我的假设是,所有已添加但尚未完成的任务都将丢失。然而,也许我对并行任务或线程池的看法是错误的

情况很简单。我添加了一系列任务:

Task.Factory.StartNew(doSomeWork);

然后有人来关闭这台机器。如果任务没有完成怎么办?机器是等待还是只是关机?有没有办法告诉它等到关机后再关机?

你的应用程序需要专门监听指示系统正在关机的系统事件,但它负责解决如何处理这一问题

在一天结束时,它不能阻止关机以完成任务(也不应该)。如果应用程序需要确保任务全部完成,那么它需要以某种方式记录哪些任务已完成,哪些任务仍处于挂起状态,以便在重新启动时可以继续


看。

你试过了吗?我的意思是,用
.Sleep(60000)
(5分钟)加载几个任务,然后关机应该不难。操作系统关心的是进程,而不是线程。请确保响应操作系统发送给您的关机请求,您没有留下任何面包屑来猜测哪种方式是合适的。我用ThreadPool尝试了它,但实际完成的任务都丢失了,但我还没有用Task尝试过。我希望有某种内置的关机管理,我只是在文档中遗漏了它。听起来不像。