Heim > Backend-Entwicklung > C++ > Hauptteil

Wie verzögere ich einen Vorgang asynchron in WPF, ohne den UI-Thread zu blockieren?

Mary-Kate Olsen
Freigeben: 2024-11-03 11:35:29
Original
571 Leute haben es durchsucht

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

So verzögern Sie einen Vorgang asynchron in WPF

Beim Versuch, eine Verzögerung in einem Vorgang zu erzeugen, kann die Verwendung von Thread.Sleep dazu führen UI-Thread wird blockiert. Um dies zu überwinden, sollten asynchrone Mittel eingesetzt werden.

Ein Ansatz ist die Verwendung eines 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>
Nach dem Login kopieren

Eine andere Option ist die Verwendung von Task.Delay:

<code class="csharp">tbkLabel.Text = "two seconds delay";

Task.Delay(2000).ContinueWith(_ =>
{
    var page = new Page2();
    page.Show();
});</code>
Nach dem Login kopieren

Für .NET 4.5 und höher kann async/await verwendet werden:

<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>
Nach dem Login kopieren

Durch die Implementierung asynchroner Methoden bleibt der UI-Thread während der Verzögerungszeit reaktionsfähig, was nahtlose Übergänge zwischen Fenstern ermöglicht.

Das obige ist der detaillierte Inhalt vonWie verzögere ich einen Vorgang asynchron in WPF, ohne den UI-Thread zu blockieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage