【发布时间】:2013-07-02 17:45:24
【问题描述】:
假设我们有一个 I/O 绑定方法(例如进行 DB 调用的方法)。此方法可以同步和异步运行。也就是说,
-
同步:
IOMethod() -
异步:
BeginIOMethod() EndIOMethod()
那么当我们以如下所示的不同方式执行该方法时,在资源利用率方面的性能差异是什么?
var task = Task.Factory.StartNew(() => { IOMethod(); }); task.Wait();var task = Task.Factory.FromAsync(BeginIOMethod, EndIOMethod, ... ); task.Wait();
【问题讨论】:
-
简短的回答,当你使用
FromAsync时,你(可能)没有线程池线程坐在那里什么都不做,如果你使用StartNew,你就是。如果您正在做很多事情,那么强调线程池可能是一个性能问题。
标签: c# .net asynchronous task-parallel-library