首页 > 其他 > 详细

Task

时间:2017-12-15 14:39:38      阅读:213      评论:0      收藏:0      [点我收藏+]

一、Task是任务,不是线程,但是执行的时候是需要线程;任务跟线程不是一对一的关系,比如开3个任务并不是说会开3个线程

在上一篇并行编程_Parallel文章中,反编译看了下源码Parallel.Invoke,会创建与调用的action[]数目一致的System.Threading.Tasks.Task的实例;Parallel.For、Parallel.ForEach的循环迭代的并行执行,也会创建Task实例

对于构造函数,属性,方法介绍看微软这篇msdn文档:https://msdn.microsoft.com/zh-cn/library/system.threading.tasks.task(v=vs.110).aspx

二、示例

   #region 创建和执行任务
            // Task.Run
            Task task = Task.Run(() =>
               {
                   // Just loop.
                   int ctr = 0;
                   for (ctr = 0; ctr <= 1000000; ctr++) { }
                   Console.WriteLine("Finished {0} loop iterations", ctr);
               });
            Console.WriteLine("可能接着执行到这儿");
            task.Wait();
            Console.ReadKey();


           //Task.Factory.StartNew
             Task task = Task.Factory.StartNew(() =>
            {
                // Just loop.
                int ctr = 0;
                for (ctr = 0; ctr <= 1000000; ctr++){ }
                Console.WriteLine("Finished {0} loop iterations",ctr);
            });
            task.Wait();
            Console.ReadKey();
            #endregion 创建和执行任务

 

Task

原文:http://www.cnblogs.com/entclark/p/8042736.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!