.NET 4 中 包含了新名称空间System.Threading.Task。它包含的类抽象出了线程的功能。使用Task类创建的任务是后台线程,所以在前台线程全部终止的时候,如果任务还没有全部执行万,就会被被动终止。
启动任务
怎样启动一个任务?代码中我们首先要添加using System.Threading.Tasks;引用。我们可以使用TaskFactory类或Task类的构造函数和Start()方法。在启动任务时,会创建Task类的一个实例。首先我们看一段代码
using System;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
namespace ConsoleTask
{
class Program
{
static void Main(string[] args)
{
//使用TaskFactory创建一个任务
TaskFactory tf = new TaskFactory();
Task t1 = tf.StartNew(NewTask);
//使用Task类de Factory创建一个任务
Task t2 = Task.Factory.StartNew(NewTask);
///////////////////////////////////////
Task t3 = new Task(NewTask);
t3.Start();
Task t4 = new Task(NewTask, TaskCreationOptions.PreferFairness);
t4.Start();
Thread.Sleep(1000);//因为任务是后台线程,所以我们这里阻塞主线程一秒钟来等待任务全部执行完成
}
static void NewTask()
{
Console.WriteLine("开始一个任务");
Console.WriteLine("Task id:{0}",Task.CurrentId);
Console.WriteLine("任务执行完成");
}
}
}