gpt4 book ai didi

c# - 启动一个任务并稍后多次等待

转载 作者:太空狗 更新时间:2023-10-29 21:32:56 24 4
gpt4 key购买 nike

在移动应用程序中,我有一个可能很长的异步操作(多个异步网络调用分组在一个异步函数中)。

_myClassField = myClient.DoANumberOfNetworkCallsAsync();

我在应用程序启动时立即执行调用,然后我显示初始屏幕和欢迎屏幕,并且仅在第一次用户交互时(例如:按下按钮)我最终等待任务并让用户等待响应还没有准备好。

public async Task<object> GetMyLongAwaitedObjectAsync()
{
return await _myClassField;
}

此方法可以被多次调用,并且可以从 UI 和非 UI 线程调用。

这会是问题的根源还是有效的模式?

最佳答案

您可以根据需要多次等待已完成的任务,并且始终会产生相同的结果。

您还可以根据需要多次调用Wait()Result,任务完成后不会阻塞。

不过,我会更改您的代码:

public Task<object> GetMyLongAwaitedObjectAsync()
{
return _myClassField;
}

这样,编译器就不必生成状态机,也不会在每次调用属性时都实例化。

关于c# - 启动一个任务并稍后多次等待,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34032977/

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