欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

任务Task

程序员文章站 2022-04-08 09:37:48
为什么要使用任务? 上一篇博客中提到了线程池ThreadPool,可以调用QueueUserWorkItem方法来发起一次异步的操作。但是这个技术存在许多限制,最大的问题是没有一个内建的机制让你知道操作在什么时候完成,也没有一个机制在操作完成时获得一个返回值。 为了克服这些限制,微软引入了Task的 ......

为什么要使用任务?

上一篇博客中提到了线程池ThreadPool,可以调用QueueUserWorkItem方法来发起一次异步的操作。但是这个技术存在许多限制,最大的问题是没有一个内建的机制让你知道操作在什么时候完成,也没有一个机制在操作完成时获得一个返回值。

为了克服这些限制,微软引入了Task的概念。

怎么简单的使用任务?

例如:在开始任务之后,等待它完成并获得结果。

class Program
{
    static void Main(string[] args)
     {
       Task<Int32> t = new Task<int>(n=>Sum((int)n),1000);
       t.Start();
       t.Wait();//调用wait方法,线程会阻塞,直到Task运行结束为止。
       Console.WriteLine("The Sum is :"+t.Result);
       Console.ReadLine();
     }
    private static int Sum(int n)
     {
       int sum = 0;
       for (; n > 0;n-- )
      {
        sum += n;
      }
      Thread.Sleep(3000);//等待一下 便于查看测试结果
      return sum;
      }
}