首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Task.Factory.StartNew与新任务

Task.Factory.StartNew与新任务
EN

Stack Overflow用户
提问于 2014-02-28 13:28:45
回答 2查看 35.5K关注 0票数 58

有人知道在任务上执行Task.Factory.StartNewnew Task,然后调用Start有什么不同吗?看一下反射器,似乎没有太大的不同。因此,唯一的区别可能是Task.Factory.StartNew返回一个已经启动的任务。这是正确的吗?

我知道Task.Factory.StartNewTask.Run有不同的默认选项,Task.Run是.Net 4.5的首选选项。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-28 13:43:40

我发现了Stephen Toub的一篇很棒的this文章,它解释了在使用new Task(...).Start()时实际上存在性能损失,因为start方法需要使用同步来确保任务只调度一次。

他的建议是更喜欢在.net 4.0上使用Task.Factory.StartNew。对于.net 4.5,Task.Runthe better option

票数 57
EN

Stack Overflow用户

发布于 2014-08-06 17:08:05

实际上,在the article by Stephen Toub中,他指定Task.Run()完全等同于使用带有默认参数的Task.Factory.StartNew():

代码语言:javascript
复制
Task.Factory.StartNew(someAction, 
CancellationToken.None, TaskCreationOptions.DenyChildAttach, TaskScheduler.Default);
票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22087005

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档