有人知道使用Task.Factory.StartNew
和使用new Task
然后调用任务的Start
方法之间是否有任何区别吗?通过反射查看似乎没有太大差别。所以也许唯一的区别是Task.Factory.StartNew
返回一个已经启动的任务。这正确吗?
我知道Task.Factory.StartNew
和Task.Run
具有不同的默认选项,而Task.Run
是.Net 4.5首选的选项。
有人知道使用Task.Factory.StartNew
和使用new Task
然后调用任务的Start
方法之间是否有任何区别吗?通过反射查看似乎没有太大差别。所以也许唯一的区别是Task.Factory.StartNew
返回一个已经启动的任务。这正确吗?
我知道Task.Factory.StartNew
和Task.Run
具有不同的默认选项,而Task.Run
是.Net 4.5首选的选项。
实际上,在Stephen Toub的这篇文章中,他指出Task.Run()与使用默认参数的Task.Factory.StartNew()是完全等价的:
Task.Factory.StartNew(someAction,
CancellationToken.None, TaskCreationOptions.DenyChildAttach, TaskScheduler.Default);
Task
构造函数,例如:https://dev59.com/6mEi5IYBdhLWcg3wRaqf - noseratio - open to workTask.Run
的确认请参见此处。 - StuartLC