自学内容网 自学内容网

常用的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)!