我的 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();
});
或者这是否只是多余的?
谢谢!
最佳答案
是的。 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;
}
关于c# - Windows RT - 按钮单击事件是否在 UI 线程上执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14151322/