首先介绍一下Task,Task有什么用,说白了Task就是线程池ThreadPool的升级版,它弥补了ThreadPool的一些不足,比如说ThreadPool不支持线程的取消、完成、失败通知、执行的先后顺序等等,要实现这些功能需要完成额外的工作。
创建task的方式有很多,我在这先简单介绍几种
方式一:先创建,后执行
Task task = new Task(() => {
//方法体
});
task.Start();
方式二:创建并执行
Task task = Task.Run(() => {
//方法体
});
方式三:利用TaskFactory(TaskFactory还有其他的功能,在这就先不说了)
TaskFactory taskFactory = Task.Factory;
//创建并启动任务
Task task = taskFactory.StartNew(() => {
//方法体
});
方式四:创建一个在指定毫秒后执行的任务
Task task = Task.Delay(2000).ContinueWith(t =>
{
//方法体
});