我希望执行一组操作,这些操作涉及将不同的异步进程写入单个文件,并且一旦写入完成,等待写入完成的另一个异步进程将执行将同一文件上载到不同服务的操作。所有操作返回无效。
以下是我正在尝试的方法
API层
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)等到所有的数据写入完成吗?
谢谢。
发布于 2018-01-18 11:44:35
首先将每个WriteFile方法定义为任务,并将其设置为一个变量:
var task1 = WriteFile(...);
var task2 = WriteFile(...);
var task3 = WriteFile(...);
var task4 = WriteFile(...);
await Task.WhenAll(task1, task2, task3, task4);然后调用您的SendFile并使用等待结果。
await SendFile(...);https://stackoverflow.com/questions/48317887
复制相似问题