不是主题专家我想了解更多.NET中可用的异步世界。 Task.Run和ThreadPool.QueueUserWorkItem都允许在池线程上调度工作,但有什么区别,或者如果你愿意,两者的优缺点是什么? 以下是我的专业列表。不知道它是否完整或甚至是正确的。Task.Run与ThreadPool.QueueUserWorkItem
ThreadPool.QueueUserWorkItem优点:
- 提供的CancellationToken等待任务完成的
- 可能性的可能性:
- 传递参数
Task.Run优点的可能性
- 可能性值返回到调用代码
您可以通过lambda表达式中的变量捕获将参数传递给Task.Run。 –
是的。我没有考虑变量捕获,因为这也可以通过ThreadPool.QueueUserWorkItem来实现。 – Stefano