zoukankan      html  css  js  c++  java
  • 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);
  • 相关阅读:
    团队冲刺2.6
    团队冲刺2.5
    团队冲刺2.4
    团队冲刺2.3
    个人作业二
    个人作业二
    个人作业二
    课程总结
    每日博客
    每日博客
  • 原文地址:https://www.cnblogs.com/HansZimmer/p/11547304.html
Copyright © 2011-2022 走看看