本文档只是自己的学习笔记,可能有误,如果有误请大家帮忙指出,谢谢。
案例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
namespace 使用任务开启线程
{
class Program
{
static void ThreadMethod()
{
Console.WriteLine("任务开始");
Thread.Sleep(2000);
Console.WriteLine("任务结束");
}
static void Main(string[] args)
{
//使用任务开启线程的方式1
//Task task = new Task(ThreadMethod);
//task.Start();
//使用任务开启线程的方式2
TaskFactory factory = new TaskFactory();//new 一个任务工厂
Task task= factory.StartNew(ThreadMethod);
Console.ReadKey();
}
}
}
结果:
连续任务
如果一个任务task2的执行是依赖于另一个任务task1的,那么就需要在这个任务task2执行完毕后才开始执行task1。这个时候我们可以使用连续任务。
案例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
namespace 使用任务开启线程
{
class Program
{
static void ThreadMethod()
{
Console.WriteLine("任务开始:"+System.Reflection.MethodBase.GetCurrentMethod().Name);
Thread.Sleep(2000);
Console.WriteLine("任务结束");
}
static void ThreadMethod2(Task task)
{
Console.WriteLine("任务开始:" + System.Reflection.MethodBase.GetCurrentMethod().Name);
Thread.Sleep(2000);
Console.WriteLine("任务结束");
}
static void ThreadMethod3(Task task)
{
Console.WriteLine("任务开始:" + System.Reflection.MethodBase.GetCurrentMethod().Name);
Thread.Sleep(2000);
Console.WriteLine("任务结束");
}
static void Main(string[] args)
{
Task task = new Task(ThreadMethod);
task.Start();
Task task2= task.ContinueWith(ThreadMethod2);
Task task3= task2.ContinueWith(ThreadMethod3);
Console.ReadKey();
}
}
}
结果: