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

  • 相关阅读:
    Model1简介
    修改Maven的本地仓库地址
    JavaWeb实现上传文件
    数据库
    集合
    JavaWeb
    Java基础
    Redis 中 redis.conf配置详细解析
    利用Java生成二维码
    利用dom4j读写XML
  • 原文地址:https://www.cnblogs.com/bruce1992/p/14022635.html
Copyright © 2011-2022 走看看