Este evento se provoca cuando el controlador de eventos DoWork devuelve.
Si la operación finaliza correctamente y su resultado se asigna en el controlador de eventos DoWork, se puede obtener acceso al resultado a través de la propiedad RunWorkerCompletedEventArgs.Result.
La propiedad Error de System.ComponentModel.RunWorkerCompletedEventArgs indica que la operación ha producido una excepción.
La propiedad Cancelled de System.ComponentModel.RunWorkerCompletedEventArgs indica si la operación en segundo plano ha procesado una solicitud de la cancelación. Si el código del controlador de eventos DoWork detecta una solicitud de cancelación mediante la comprobación del indicador CancellationPending y el establecimiento del indicador Cancel de System.ComponentModel.DoWorkEventArgs en true, el indicador Cancelled de System.ComponentModel.RunWorkerCompletedEventArgs también se establecerá en true.
Precaución |
|---|
| Tenga en cuenta que el código del controlador de eventos DoWork puede finalizar su trabajo mientras se realiza una solicitud de cancelación y que el bucle de sondeo podría pasar por alto la propiedad CancellationPending que se haya establecido en true. En este caso, el indicador Cancelled del objeto System.ComponentModel.RunWorkerCompletedEventArgs del controlador de eventos RunWorkerCompleted no se establecerá en true aunque se haya realizado una solicitud de cancelación. Esta situación se denomina condición de anticipación y es un problema habitual en la programación con subprocesamiento múltiple. Para obtener más información sobre los problemas de diseño de subprocesamiento múltiple, vea Procedimientos recomendados para el subprocesamiento administrado. |
El controlador de eventos RunWorkerCompleted debe comprobar siempre las propiedades AsyncCompletedEventArgs.Error y AsyncCompletedEventArgs.Cancelled antes de obtener acceso a la propiedad RunWorkerCompletedEventArgs.Result. Si se ha producido una excepción o si se ha cancelado la operación, el acceso a la propiedad RunWorkerCompletedEventArgs.Result provoca una excepción.