c# – 异步方法的并发执行
发布时间:2020-12-15 08:28:45 所属栏目:百科 来源:网络整理
导读:使用async / await模型,我有一个方法,它对Web服务进行3次不同的调用,然后返回结果的并集. var result1 = await myService.GetData(source1);var result2 = await myService.GetData(source2);var result3 = await myService.GetData(source3);allResults = U
使用async / await模型,我有一个方法,它对Web服务进行3次不同的调用,然后返回结果的并集.
var result1 = await myService.GetData(source1); var result2 = await myService.GetData(source2); var result3 = await myService.GetData(source3); allResults = Union(result1,result2,result3); 使用典型等待,这3个调用将彼此同步执行.我将如何让它们同时执行并在完成后加入结果? 解决方法
最简单的方法就是创建所有任务然后等待它们: var task1 = myService.GetData(source1); var task2 = myService.GetData(source2); var task3 = myService.GetData(source3); // Now everything's started,we can await them var result1 = await task1; var result1 = await task2; var result1 = await task3; 您可能还会考虑 我不是在这里建议一个特定的策略,因为它取决于你的具体情况.您可能只关心成功/失败并记录一个失败原因,在这种情况下上面的代码是正常的.否则,您可以将延续连接到原始任务以记录所有异常,例如. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |