【发布时间】:2012-12-30 01:05:59
【问题描述】:
我正在使用 TPL 和 async/await 进行一些测试,并注意到一些我发现意外的事情:例如,我正在安排工作以使用 lambdas 和 Task.Run 运行:
Task.Run(()=>Console.WriteLine("Nice program"));
然后我意识到如果程序立即返回,则永远不会执行工作。这是任何 .NET 应用程序(WPF、Forms 等)中的预期行为吗?有没有讨论这个的文档?
这意味着 Task.Run 实际上不适合一劳永逸的场景。
【问题讨论】:
-
如果在调用 ExitProcess 的线程上运行,你可能会很幸运,否则我就走了。阅读here
-
@rene 我认为,在编写 .Net 应用程序时,Windows 进程如何终止并不是那么有趣。
-
@svick 好吧,这取决于我猜。您不能指望操作系统不必在运行于该操作系统之上的框架中提供一种功能(并且由于没有标记 Mono,因此 linux 在这里没有发挥作用)。所以我的评论肯定不是答案,但它可能有助于推理或理解行为。至少它对我有帮助……
标签: .net task-parallel-library