![]() |
1
3
任务和异步委托都使用线程池。 任务和异步委托在异常可以传播到调用方的意义上是相似的。任务更进一步,累积所有抛出的异常并将它们呈现给所有线程池工作线程。 任务允许取消。 有一个免费的章节更详细地描述了这一切: http://www.albahari.com/threading/ |
![]() |
2
2
你要求“限制”。 我认为你不会发现任何不能用ADI(也叫APM)做的事情。关键是性能和程序员的努力。 判决似乎是一致的, Joe Duffy also warns you away 来自ADI/APM 结论很简单,如果可以的话就用第三方物流。它既简单又有效。而且这只是进一步发展的开始。 |
![]() |
3
2
不是说我是第三方物流专家。根据我的理解,TPL将并行级别上的决策抽象为配置/规范。 例如,在并行For循环中。 Parallel.For(0,1000,a=>Thread.Sleep(10000)); 你不一定要产生1000个线程。TPL将“并行”到适当数量的线程。与异步调用方法1000次相反。(这也不会创建1000个线程,但在释放所需的资源之前,您只会阻止执行调用。 此外,TPL允许您对并行任务进行更高级别的控制。在上面的示例中,您可以轻松地暂停/中断/中止for循环。例如。 parralell.For(0,1000,(a,loopState)=>loopState.Break()); 使用传统的异步方法调用来实现上述功能有点麻烦。 TL,DR:TPL更有效,更容易使用。 |
![]() |
Linesofcode · 错误未指定sqlcese40。dll 7 年前 |
![]() |
Arvo Bowen · 如何使用父控件的默认字体创建用户控件? 8 年前 |
![]() |
Asdfg · 如何解析此文本并构建对象 9 年前 |
![]() |
qakmak · WPF win8平板电脑模式键盘隐藏屏幕底部的项目 9 年前 |
![]() |
DeJaVo · .NET4到.NET4.5运行时的更改是什么 9 年前 |