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);

转载于:https://www.cnblogs.com/HansZimmer/p/11547304.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值