1

xaml に起動するボタン クリック イベントがあります。

 private void Button_Click(object sender, Windows.UI.Xaml.RoutedEventArgs e){
     StoryBoardName.begin()
 }

この "StoryBoardName.begin() を次のようにラップする必要があるかどうか興味があります。

var dispatcher = Windows.UI.Core.CoreWindow.GetForCurrentThread().Dispatcher;
dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>{
    StoryBoardName.Begin();
});

または、それが余分な場合はどうなりますか?

ありがとう!

4

1 に答える 1

4

はい。UIによって発生したイベントは、UIスレッドで処理されます。

実際、スレッドの設定方法(SyncronizationContext)により、async / awaitを使用して他のスレッドで非同期作業を実行することもできますが、必要に応じてUIコードをUIスレッドで実行することもできます。

private async void Button_Click(object sender, Windows.UI.Xaml.RoutedEventArgs e)
{
    StoryBoardName.Begin();
    IsEnabled = false;
    await webClient.GoGetAWebpageAsync();
    IsEnabled = true;
}
于 2013-01-04T05:10:29.827 に答える