Isi*_* O. 1 .net c# asynchronous microsoft-metro windows-8
相关代码如下:
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;
});
Run Code Online (Sandbox Code Playgroud)
当我运行它时,抛出E_ACCESSDENIED.
isync-await允许吗?
Dispatcher.RunAsync不是为了接受async代表.它的设计本身就是为了Task等待它.您提供的方法应该是非异步方法.
它接受的代表的实际签名是 public delegate void DispatchedHandler()
因为委托是无效的RunAsync,所以返回会认为它是awaits第一次完成,而不是在它实际完成时.这意味着等待这种方法的任何代码都应该继续进行.