c#中任務工廠執行多執行緒任務
阿新 • • 發佈:2019-01-21
在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(); }