private async void ProgressDialog_Opened(ContentDialog sender, ContentDialogOpenedEventArgs args)
{
ProgressDialog p = sender as ProgressDialog;
await DoCopyingAsync(p);
}
私は非同期voidメソッドで待っているときに悪いことが起こることを知っています。どうすれば私のコードを変更できますか?これは '待機可能'である 'トップレベルイベントハンドラ'ではなく、呼び出し後に起動されます「トップレベル」ではないイベントハンドラでタスクを待つことを避けるには?
await progressDialog.ShowAsync();
事前に感謝します。
イベントハンドラで待つのは大丈夫です。例えば、これを見てください:http://stackoverflow.com/a/19415703/2704659 –
これは疑問ではありませんか?!! –
@ rory.ap一般的なイベントハンドラ*で待つのは大丈夫です。これは、同期コンテキストがあり、そのすべてがどのように機能するかについての良い考えがある場合にのみ適用されます。 WinFormsでは、これはすべてWinFormsの同期コンテキストで処理されるため、通常はWinFormsスレッドのUIイベントを待つのが安全です。 – Luaan