UI スレッドをブロックせずに WPF で操作を非同期的に遅延させる方法は?

Mary-Kate Olsen
リリース: 2024-11-03 11:35:29
オリジナル
571 人が閲覧しました

How to Delay an Operation Asynchronously in WPF without Blocking the UI Thread?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート