Task.Factory.StartNew()与TaskEx.Run()

Yar*_*evi 13 asynchronous task task-parallel-library c#-4.0 async-ctp

Task.Factory.StartNew()基本上接收一个Action并返回一个Task.在Async CTP中,我们有TaskEx.Run(),它也接收一个Action并返回一个Task.他们似乎做同样的事情.为什么引入TaskEx.Run()?

aL3*_*891 14

Anders Hejlsberg在第9 频道的采访中简短地谈到了这一点.显然,Task.Run这只是一个简写Task.Factory.StartNew.Task.Run它还处于早期的CTP日期,所以我们不确定它会使它成为int.我个人希望不会,因为它有点多余.:)

  • 这只是部分正确.[博客文章](http://blogs.msdn.com/b/pfxteam/archive/2011/10/24/10229468.aspx)讨论了对`Task.Run`的期望.特别是在动作返回`Task <TResult>`的场景中,`Task.Factory.StartNew`将返回一个`Task <Task <TResult>`,需要一个`Unwrap`来获取内部任务,其中`Task.Run`将返回一个带有隐式展开的`Task <TResult>`. (8认同)
  • 它确实:-)我希望这个文档提到它是Task.Factory.StartNew的简写 - http://msdn.microsoft.com/en-us/library/hh195051.aspx (2认同)

Bru*_*ant 6

Stephen Toub在他的文章中介绍了它.它们是相同的,一个是另一个的简写.