gpt4 book ai didi

c# - 转换/包装一个使用回调的 "classic"异步方法

转载 作者:太空狗 更新时间:2023-10-29 20:10:41 26 4
gpt4 key购买 nike

我正在尝试将使用回调的“经典”异步方法转换为异步/等待方法。

这是代码:

authClient.LoginCompleted += authClient_LoginCompleted;
authClient.LoginAsync(new List<string>() { "var1", "var2" }, data);

static void authClient_LoginCompleted(object sender, LoginCompletedEventArgs e)
{ ... }

其中“data”是一个UserStateauthClient_LoginCompleted 是回调。

我已经有了 async/await 方法的逻辑,问题是 Windows Phone 中与 Microsoft.Live 的交互使用回调。我正在考虑使用信号量的解决方案,以免改变我的逻辑。那可能是个不错的选择?

最佳答案

如果需要将异步回调包装成Task s,那么你可以使用TaskCompletionSource<T> . MSDN has the full details .

但是,在您的情况下,您可以只使用 LoginAsync没有 UserState参数:

LiveLoginResult result = await authClient.LoginAsync(new[] { "var1", "var2" });

关于c# - 转换/包装一个使用回调的 "classic"异步方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13514634/

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