首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >等待多异步进程完成

等待多异步进程完成
EN

Stack Overflow用户
提问于 2018-01-18 09:31:34
回答 1查看 488关注 0票数 0

我希望执行一组操作,这些操作涉及将不同的异步进程写入单个文件,并且一旦写入完成,等待写入完成的另一个异步进程将执行将同一文件上载到不同服务的操作。所有操作返回无效。

以下是我正在尝试的方法

API层

代码语言:javascript
复制
private static async Task writeToFile(string data){
...
     await FileIO.AppendTextAsync(myFile, data);

}

private static async Task sendFile(string data){
     ...
     var properties = await FileIO.GetPropertiesAsync(myFile, data);
     if(properties.Size > = 0){
       await FileProcessor.sendFile(myFile);
     }
    ....
}

在我的应用程序中,我多次调用WriteFile方法,然后调用SendFile操作。由于我处理异步任务的方法的本质上存在问题,所以在执行第一个WriteToFile之后,就会间接地执行发送。但是我喜欢让sendFile等待所有的WriteFile调用完成。

有人能建议我(或纠正我)如何使这些异步任务(sendFile)等到所有的数据写入完成吗?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2018-01-18 11:44:35

首先将每个WriteFile方法定义为任务,并将其设置为一个变量:

代码语言:javascript
复制
var task1 = WriteFile(...);
var task2 = WriteFile(...);
var task3 = WriteFile(...);
var task4 = WriteFile(...);
await Task.WhenAll(task1, task2, task3, task4);

然后调用您的SendFile并使用等待结果。

代码语言:javascript
复制
await SendFile(...);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48317887

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档