Task.Run 和Task.Factory.StartNew 区别
Posted hanszimmer
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Task.Run 和Task.Factory.StartNew 区别相关的知识,希望对你有一定的参考价值。
.Net Framework 4.0开始支持Task.Factory.StartNew,.Net Framework 4.5后开始支持Task.Run。
Task.Factory.StartNew经过简化成了Task.Run,注意的是Factory.StartNew的方法参数种类更丰富,可以完成多样的需求。
在选择上,如果创建的线程需要长时间运行的话那就选择Task.Factory.StartNew。
一:使用
Task.Run(() =>......);
Task.Factory.StartNew(() =>);
二:等待线程拓展
await:目的是创建的线程完成后其他的线程才能继续执行。
private static async void NewTask() //只能是用在异步的方法中,使用时配合async。 await Task.Run(() => //Task.Factory.StartNew同样适用 Console.WriteLine("创建的线程:" + Thread.CurrentThread.ManagedThreadId); );
也可以这么使用:
var newTask = Task.Run(() => Console.WriteLine("进入 线程" + Thread.CurrentThread.ManagedThreadId); ); Task.WaitAll(newTask);
以上是关于Task.Run 和Task.Factory.StartNew 区别的主要内容,如果未能解决你的问题,请参考以下文章
Task.Run 和 Task.Factory.StartNew 区别
Task.Run 和Task.Factory.StartNew 区别
关于 Task.Start() 、 Task.Run() 和 Task.Factory.StartNew() 的使用
CS0121'Task.Run之间的调用不明确 (Func键 )'和'Task.Run(Func )”