c# task添加顺序_C#-ContinueWith与在一个任务中顺序执行

我刚刚开始熟悉Task Parallel Library,并且遇到了一个琐碎的问题,无法找到明确的答案.

以下摘要与何时应该选择一个摘要之间有什么区别?

Task t = Task.Factory.StartNew(() => {

Result result = Utils.Calculate();

Utils.ProcessResults(result);

});

Task t = Task.Factory.StartNew(() => Utils.Calculate());

t.ContinueWith((x) => Utils.ProcessResults(x));

似乎第一种方法是可取的,因为它的开销较小,并且在这个简单的示例中,实际上使用ContinueWith并没有多大意义.

但是话又说回来,我已经看到第二种方法在某些场合可能被第一种替代使用……

解决方法:

使用延续模型,您可以在原始任务完成后为异步处理安排延续.这意味着线程可以潜在地拾取您的原始任务,对其进行处理,拾取其他工作,对其进行处理,并且仅在以后的某个时刻拾取您的继续进行处理.

没有继续,您可以确保处理线程将在任务完成之前执行这两个语句.

我承认我对这些方案的经验有限,但是使用延续性时有两个原因让我想到:

>您正在安排要(可能)在继续之前处理的其他工作.

>您需要一种方法来提醒调用线程第一条语句已完成(即,更新了一部分UI),但并不在乎第二条语句已完成.

标签:task-parallel-library,c,net

来源: https://codeday.me/bug/20191121/2055719.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值