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

  • 相关阅读:
    Linux下新建服务
    查看MYSQL日志(包含最近锁表日志)
    Linux后台运行进程
    MYSQL分析慢查询
    Linux下打开超大文件方法
    通过文件列表打包文件
    linux学习笔记<基本知识普及>
    虚拟机的安装
    Android NDK编程,引入第三方.so库
    linux下软件安装与卸载
  • 原文地址:https://www.cnblogs.com/bruce1992/p/14022635.html
Copyright © 2020-2023  润新知