常用的TASK方法
TASK.ContinueWith
Task<int> task = Task.Run(() => {
return 42; // 返回计算结果
});
task.ContinueWith(t => {
int result = t.Result; // 处理任务的结果
Console.WriteLine("Result: " + result);
});
可以用来串联任务,在任务A后面接上任务B时,就可以使用 TASK A .ContinueWith TASK B
TASK.WaitALL
Task task1 = Task.Run(() => { /* some work */ });
Task task2 = Task.Run(() => { /* some work */ });
Task.WaitAll(task1, task2); // 等待所有任务完成
可以用来等待一组任务完成,阻塞当前线程直到所有任务完成
TASK.WhenALL
Task.WhenAll(task1, task2).ContinueWith(t => {
// 所有任务都完成后执行
});
与TASK.WaitALL不同的是,它不会阻塞线程,而是返回一个任务,当所有任务都完成时,这个返回的任务就会完成。
TASK.WaitAny
Task.WaitAny(task1, task2); // 只需等待其中一个任务完成
阻塞当前线程,直到至少有一个任务完成。
TASK.WhenAny
Task.WhenAny(task1, task2).ContinueWith(t => {
// 其中一个任务完成后执行
});
与TASK.WaitAny类似,但是不会阻塞当前线程,而是返回一个任务,该任务会在至少有一个任务完成后完成。
原文地址:https://blog.csdn.net/weixin_50600749/article/details/142820068
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!