在C#中经常用到Thread来执行多线程任务,用BackgroundWorker也非常方便。今天提到的是用任务工厂(TaskFactory)来实现多线程。
//创建任务列表
List<Task> tasks = new List<Task>();
//将任务添加至任务工厂
for (int i = 0; i < 3;i++ )
{
tasks.Add(Task.Factory.StartNew(()=>RunTask()));
}
//由任务工厂执行任务
Task.Factory.ContinueWhenAll(tasks.ToArray(),TasksFinish,CancellationToken.None);
//创建任务工厂控制变量
private CancellationTokenSource _cts = new CancellationTokenSource();
//task主函数
private void RunTask()
{
while(true)
{
//如果任务取消,退出任务
if(_cts.IsCancellationRequested)
{
break;
}
//do some thing
}
}
//任务结束函数,任务结束或取消后都会进这个函数
private void TasksFinish()
{
MessageBox.Show("任务结束!");
}
//取消任务
private void StopTasks()
{
_cts.Cancel();
}
本文介绍如何在C#中利用任务工厂(TaskFactory)来创建和执行多线程任务,通过实例展示了任务列表、任务工厂执行、任务控制及任务结束处理。
766

被折叠的 条评论
为什么被折叠?



