Introducción al componente c # BackgroundWorker (propiedades, métodos, eventos)

Introducción al componente c # BackgroundWorker (propiedades, métodos, eventos)

Se agregó el componente BackgroundWorker en VS2005. Este componente es muy conveniente de usar en la programación multiproceso. Sin embargo, al principio, debido a que no entendía su mecanismo de uso, tomó muchos desvíos. Comparte tu experiencia contigo.
    La clase BackgroundWorker utiliza principalmente esta lista de atributos, métodos y eventos:
    Atributos importantes:
    1. CancellationPending obtiene un valor que indica si la aplicación ha solicitado cancelar la operación en segundo plano. Al juzgar el atributo CancellationPending en el evento DoWork, puede determinar si necesita cancelar la operación en segundo plano (es decir, finalizar el subproceso);
    2. IsBusy obtiene un valor que indica si BackgroundWorker está ejecutando una operación asincrónica. El atributo IsBusy se usa en el programa para determinar si la operación en segundo plano está en uso:
    3. WorkerReportsProgress obtiene o establece un valor que indica si BackgroundWorker puede informar actualizaciones de progreso
    4. WorkerSupportsCancellation obtiene o establece un valor que indica si BackgroundWorker admite la cancelación asíncrona . Establezca WorkerSupportsCancellation en true para que el programa pueda llamar al método CancelAsync para enviar una solicitud para finalizar la operación en segundo plano suspendida;
    métodos importantes:
    1. Solicitud CancelAsync para cancelar la operación en segundo plano suspendida
    2. RunWorkerAsync envía una solicitud para iniciar una operación que se ejecuta de forma asíncrona. Después de emitir esta solicitud, se generará un evento DoWork, que luego comenzará a realizar operaciones en segundo plano.
    3. ReportProgress genera
    eventos importantes del evento ProgressChanged   :
    1. Se produce cuando DoWork llama a RunWorkerAsync. 2. Se produce cuando
    ProgressChanged llama a ReportProgress.
    3. RunWorkerCompleted. Se produce cuando la operación en segundo plano se completa, cancela o lanza una excepción.
    Hay otros tres parámetros importantes: RunWorkerCompletedEventArgs. , ProgressChangedEventArgs.
    Mecanismo de llamada de BackgroundWorker y secuencia de atributos, métodos y eventos: de

    la figura anterior, se puede ver que se han producido tres procesos importantes de transferencia de parámetros en todo el ciclo de vida:
    transferencia de parámetros 1: la transferencia de parámetros es el uso de RunWorkerAsync (Object) El objeto se pasa al DoWorkEventArgs.Argumento del evento DoWork. Dado que solo hay un parámetro que se puede pasar aquí, en la aplicación real, se encapsula una clase, y toda la clase instanciada se pasa al DoWorkEventArgs.Argument como el objeto RunWorkerAsync;
    Transferencia de parámetros 2: esto es para transferir el progreso del programa al evento ProgressChanged. En el uso real, a menudo se usa para actualizar la barra de progreso o la información de registro para el método y el evento;
    Transferencia de parámetros 3: antes del final del evento DoWork, se asignan los datos de resultados generados por el subproceso de fondo Otorgue el lado DoWorkEventArgs.Result para llamar a la propiedad RunWorkerCompletedEventArgs.Result en el evento RunWorkerCompleted para obtener el resultado generado por el subproceso en segundo plano.
    Además, puede ver en la figura anterior que el evento DoWork se está ejecutando en un subproceso en segundo plano, por lo que no puede operar el contenido de la interfaz de usuario en este evento. Si necesita actualizar la interfaz de usuario, puede usar el evento ProgressChanged y el evento RunWorkCompleted.

    Después de comprender la secuencia de llamada de eventos y el mecanismo de paso de parámetros de BagkgroundWorker, puede ser mucho más fácil cuando se usa este componente para la programación de subprocesos múltiples

28 artículos originales publicados · Me gusta 15 · Visitas 110,000+

Supongo que te gusta

Origin blog.csdn.net/z3h0a5n8g8x9i9a2o3/article/details/9015481
Recomendado
Clasificación