zoukankan      html  css  js  c++  java
  • 1、Task的优势

    1、Task的优势

      ThreadPool相比Thread来说具备了很多优势,但是ThreadPool却又存在一些使用上的不方便。比如:
      ◆ ThreadPool不支持线程的取消、完成、失败通知等交互性操作;
      ◆ ThreadPool不支持线程执行的先后次序;
      以往,如果开发者要实现上述功能,需要完成很多额外的工作,现在,FCL中提供了一个功能更强大的概念:Task。Task在线程池的基础上进行了优化,并提供了更多的API。在FCL4.0中,如果我们要编写多线程程序,Task显然已经优于传统的方式。
      以下是一个简单的任务示例:

        async/await的实现:

    using System;
    using System.Threading.Tasks;

    namespace ConsoleApp1
    {
      class Program
      {
        public static void Main()
        {
          var ret1 = AsyncGetsum();
          Console.WriteLine("主线程执行其他处理");
          for (int i = 1; i <= 3; i++)
            Console.WriteLine("Call Main()");
          int result = ret1.Result; //阻塞主线程
          Console.WriteLine("任务执行结果:{0}", result);
         }

         async static Task<int> AsyncGetsum()
         {
          await Task.Delay(1);
          int sum = 0;
          Console.WriteLine("使用Task执行异步操作.");
          for (int i = 0; i < 100; i++)
          {
            sum += i;
          }
          return sum;
         }
      }
    }

  • 相关阅读:
    闭包Closures
    jsp中的四种对象作用域
    JFrame小练习1
    swift函数的用法,及其嵌套实例
    图的储存
    洛谷P3366 【模板】最小生成树(Kruskal && Prim)
    洛谷P3371 【模板】单源最短路径(弱化版)(SPFA解法)
    POJ 1577 Falling Leaves
    POJ 3784 Running Median
    洛谷P3374 【模板】树状数组 1
  • 原文地址:https://www.cnblogs.com/bruce1992/p/14022635.html
Copyright © 2011-2022 走看看