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);
  • 相关阅读:
    28完全背包+扩展欧几里得(包子凑数)
    HDU 3527 SPY
    POJ 3615 Cow Hurdles
    POJ 3620 Avoid The Lakes
    POJ 3036 Honeycomb Walk
    HDU 2352 Verdis Quo
    HDU 2368 Alfredo's Pizza Restaurant
    HDU 2700 Parity
    HDU 3763 CDs
    POJ 3279 Fliptile
  • 原文地址:https://www.cnblogs.com/HansZimmer/p/11547304.html
Copyright © 2011-2022 走看看