"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo introducir retrasos en las operaciones de WPF sin bloquear el subproceso de la interfaz de usuario?

¿Cómo introducir retrasos en las operaciones de WPF sin bloquear el subproceso de la interfaz de usuario?

Publicado el 2024-11-20
Navegar:567

How to Introduce Delays in WPF Operations Without Blocking the UI Thread?

Lograr retrasos en las operaciones de WPF con enfoques alternativos

Al intentar introducir un retraso antes de ejecutar una operación en WPF, es importante evitar el uso de Thread.Sleep, ya que esto Este enfoque bloquea el hilo de la interfaz de usuario y puede provocar que las interfaces de usuario no respondan. En su lugar, considere aprovechar técnicas de programación asincrónica.

Enfoque de DispatcherTimer

Una opción es emplear un DispatcherTimer. Este temporizador se ejecuta en el subproceso de la interfaz de usuario y llama a su controlador de eventos Tick después de un intervalo específico:

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();
};

Enfoque Task.Delay

Otro enfoque implica el uso de Task.Delay:

tbkLabel.Text = "two seconds delay";

Task.Delay(2000).ContinueWith(_ => {
    var page = new Page2();
    page.Show();
});

Aquí, el programa crea una tarea que se completa después de un retraso de 2 segundos y luego invoca al delegado de continuación para mostrar la nueva página.

Enfoque Async/Await (para .NET 4.5 y posteriores)

Finalmente, para proyectos orientados a .NET 4.5 o superior, el patrón async/await proporciona una manera concisa y conveniente de manejar los retrasos:

public async void TheEnclosingMethod()
{
    tbkLabel.Text = "two seconds delay";

    await Task.Delay(2000);
    var page = new Page2();
    page.Show();
}

Al aprovechar las técnicas asincrónicas, los desarrolladores pueden introducir retrasos en las operaciones de WPF sin comprometer la capacidad de respuesta de la interfaz de usuario.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3