gpt4 book ai didi

c# - 在异步方法主体中获取当前任务实例

转载 作者:太空狗 更新时间:2023-10-29 18:32:08 25 4
gpt4 key购买 nike

如果我有一个像这样的异步方法主体 -

public async Task GetSomething() {

await SendText("hi");
await SendImage("bla.bmp");

}

当 await 启动时,如何在返回给用户之前获取 Task 对象

即..

public async Task GetSomething() {

myTasks.Add(Task.Current);
await SendText("hi");
await SendImage("bla.bmp");

//some processing

}

这样我就可以在别的地方做

 await Task.WhenAll(myTasks);
Console.WriteLine("All tasks complete");

这样我就可以等待所有任务完成后再关机

最佳答案

这不是直接可能的,因为该语言没有访问“当前”任务的工具。

虽然有一个解决方法:将您的异步方法包装在另一个方法中。一旦异步方法返回(这大约发生在第一个等待点),此其他方法可以获取任务。

在所有情况下,我建议让调用者将异步任务添加到您的列表中,而不是异步方法本身。即使从封装的角度来看,这也是有用的。

关于c# - 在异步方法主体中获取当前任务实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14303003/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com