WindowsForm のときは、Invokeで行っていたが、
UWPでは Dispatcher.RunAsync を使う。
例)ボタンをクリックされた時スレッドを作成してそのボタンを一瞬光らせる。
ボタンのクリックイベントで
Task.Run(()=>ButtonFlash(button));としてメソッドをスレッドとしてコールする。
private async void ButtonFlash(Button btn)
{
await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => {
btn.Background = new SolidColorBrush(Colors.Aqua);
});
// Delay は RunAsync の外で行う必要がある
await Task.Delay(TimeSpan.FromSeconds(0.1));
await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => {
btn.Background = new SolidColorBrush(Colors.Gray);
});
}
0 件のコメント:
コメントを投稿