{ Message-6ren">
gpt4 book ai didi

c# - 在 Dispatcher.RunAsync() 中使用 "await"会引发异常

转载 作者:太空宇宙 更新时间:2023-11-03 20:15:08 25 4
gpt4 key购买 nike

相关代码如下:

Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, async () =>
{
MessageDialog dialog = new MessageDialog("Wrong username or passwork. Please try again.");
await dialog.ShowAsync();
this.LoginButton.IsEnabled = true;
});

当我运行它时,抛出 E_ACCESSDENIED。

这里允许async-await吗?

最佳答案

Dispatcher.RunAsync 并非设计用于接受 async 委托(delegate)。它旨在自己返回一个 Task 以便可以等待它。你给它的方法应该是非异步方法。

它接受的委托(delegate)的实际签名是public delegate void DispatchedHandler()

因为委托(delegate)是 void 返回 RunAsync 会认为它在它第一次 awaits 时就完成了,而不是在它实际完成时。这意味着无论等待此方法的代码是什么,都在它应该运行之前继续运行。

关于c# - 在 Dispatcher.RunAsync() 中使用 "await"会引发异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17406862/

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