WPF で操作を非同期に遅延させる方法
操作に遅延を作成しようとすると、Thread.Sleep を使用すると、 UI スレッドがブロックされています。これを克服するには、非同期手段を使用する必要があります。
1 つの方法は、DispatcherTimer を利用することです:
<code class="csharp">tbkLabel.Text = "two seconds delay"; var timer = new DispatcherTimer { Interval = TimeSpan.FromSeconds(2) }; timer.Start(); timer.Tick += (sender, args) => { timer.Stop(); var page = new Page2(); page.Show(); };</code>
もう 1 つのオプションは、Task.Delay を使用することです:
<code class="csharp">tbkLabel.Text = "two seconds delay"; Task.Delay(2000).ContinueWith(_ => { var page = new Page2(); page.Show(); });</code>
.NET 4.5 以降では、async/await を使用できます。
<code class="csharp">// Add async keyword to the method signature public async void TheEnclosingMethod() { tbkLabel.Text = "two seconds delay"; await Task.Delay(2000); var page = new Page2(); page.Show(); }</code>
非同期メソッドを実装することで、遅延期間中 UI スレッドの応答性が維持され、ウィンドウ間のシームレスな移行が可能になります。
以上がUI スレッドをブロックせずに WPF で操作を非同期的に遅延させる方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。