任务Task

2018-01-29 08:26:46来源:cnblogs.com作者:晴天露人点击

分享

为什么要使用任务?

上一篇博客中提到了线程池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;
      }
}

最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台