创建任务
using System; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Diagnostics; namespace Test { class Program { /// <summary> /// 创建和执行任务 /// </summary> static void Main() { CurrentThreadInfo("主线程Main()的"); var t1 = new Task(() => TaskMethod("task11")); t1.Start(); //Task.Run()方式是Task.Factory.StartNew()的快捷方式,它没有附加的选项。 Task.Run(() => TaskMethod("task22")); //Task.Factory.StartNew(() => TaskMethod("task33")); Task.Factory.StartNew(() => { TaskMethod("task33"); }); //LongRunning:标记该任务为长时间运行,结果该任务不会使用线程池。 Task.Factory.StartNew(() => { TaskMethod("task44"); }, TaskCreationOptions.LongRunning); Console.WriteLine("执行完成"); Console.ReadLine(); } private static void TaskMethod(string name) { Console.WriteLine("任务名称:{0} , {1}", name, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); CurrentThreadInfo(name); } /// <summary> /// 当前线程信息 /// </summary> private static void CurrentThreadInfo(string name) { StringBuilder builder = new StringBuilder(); builder.AppendLine(""); builder.AppendLine(String.Format("{0}线程Id:\t\t{1}", name, Thread.CurrentThread.ManagedThreadId)); builder.AppendLine(String.Format("{0}是否使用线程池:\t{1}", name, Thread.CurrentThread.IsThreadPoolThread)); builder.AppendLine(String.Format("{0}是否后台线程:\t{1}", name, Thread.CurrentThread.IsBackground)); builder.AppendLine(String.Format("{0}线程状态:\t\t{1}", name, Thread.CurrentThread.ThreadState.ToString())); builder.AppendLine(String.Format("{0}当前时间:\t\t{1}", name, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"))); builder.AppendLine(""); Console.WriteLine(builder.ToString()); } } }
打印运行结果:
/* 主线程Main()的线程Id: 10 主线程Main()的是否使用线程池: False 主线程Main()的是否后台线程: False 主线程Main()的线程状态: Running 主线程Main()的当前时间: 2016-08-17 12:03:34 执行完成 任务名称:task11 , 2016-08-17 12:03:34 任务名称:task33 , 2016-08-17 12:03:34 任务名称:task44 , 2016-08-17 12:03:34 task44线程Id: 14 task44是否使用线程池: False task44是否后台线程: True task44线程状态: Background task44当前时间: 2016-08-17 12:03:34 task33线程Id: 12 task33是否使用线程池: True task33是否后台线程: True task33线程状态: Background task33当前时间: 2016-08-17 12:03:34 任务名称:task22 , 2016-08-17 12:03:34 task11线程Id: 13 task11是否使用线程池: True task11是否后台线程: True task11线程状态: Background task11当前时间: 2016-08-17 12:03:34 task22线程Id: 11 task22是否使用线程池: True task22是否后台线程: True task22线程状态: Background task22当前时间: 2016-08-17 12:03:34 */

浙公网安备 33010602011771号