第一、基本使用

Thread,ThreadPool,Task的区别Task是.NET4.0加入的,跟线程池ThreadPool的功能类似,用Task开启新任务时,会从线程池中调用线程,而Thread每次实例化都会创建一个新的线程。 如果是长时间的操作,请使用Task(Acton,TaskCreationOptions)构造函数中的TaskCreationOptions.LongRunning,暗示任务调度器,将这个线程放在非线程池上执行

第二、四种启动方法

1)通过start启动,new 一个Task,其中参数是一个Action
 class Program    {        static void Main(string[] args)        {            Task t = new Task(DoA);            t.Start();            Console.ReadKey();        }        static void DoA()        {            for (int i = 0; i < 100; i++)            {                Console.WriteLine("i={0}\n", i);            }        }    }

  

2)通过Run,直接运行,接受参数一个Action,返回对象是一个Task

 static void Main(string[] args)        {            Task.Run(() =>            {                for (int i = 0; i < 50; i++)                {                    Console.WriteLine("i={0}",i);                }            });            Console.ReadKey();        }

3)带返回参数的线程

   Task<int> task = Task.Run<int>(() =>            {                int sum = 0;                for (int i = 0; i < 50; i++)                {                    sum += 1;                }                return sum;            });            int result = task.Result;            Console.WriteLine("运算结果是:{0}",result);//输出50            Console.ReadKey();

4)通过Task.Factory

  Task t = Task.Factory.StartNew(() =>              {                  for (int i = 0; i < 10; i++)                  {                      Console.WriteLine("i={0}", i);                  }              });

  

更多相关文章

  1. C# 多线程--线程池的详细介绍
  2. C#中SQL参数传入空值出错误和如何解决办法
  3. C#中多线程之Thread类详解
  4. C#线程控制的实例详解
  5. 使用ConcurrentDictionary多线程同步字典集合实例详解
  6. 详解可选参数和命名参数实例
  7. ASP.NET中的参数与特殊类型的实例详解
  8. c#中关于多线程创建对象的示例分享
  9. C#多线程之Semaphore的使用详解

随机推荐

  1. Android imageView设置 全屏显示
  2. 【转】Android(安卓)statusBar添加back,h
  3. Android数据加密之Des加密
  4. Android系统自带样式(android:theme)解析
  5. Android中Tweened animation简介
  6. Android更新Ui进阶精解(二)
  7. Android更新Ui进阶精解(一)
  8. Android记事本NotePad应用功能拓展(四)
  9. 元素可指定如下常用属性
  10. android 兼容所有刘海屏的方案大全