2011-01-21 16 views
10

En palabras sencillas:BackgroundWorker RunWorkerCompletedEventArgs.Cancelled siempre falsas

cancelo mi operación llamando al método CancelAsync() en el BackgroundWorker, y cuando cae en la ejecución del evento RunWorkerCompleted, propiedad Cancelled en RunWorkerCompletedEventArgs es falso. No pude entender cuándo o dónde debería establecerlo en verdadero, ya que esta es una propiedad de EventArgs.

¿Alguien me puede ayudar un poco? Además, lo siento si es un duplicado, pero no pude encontrar ninguna pregunta sobre esto.

Respuesta

15

De MSDN:

La propiedad de Cancelada RunWorkerCompletedEventArgs indica si una solicitud de cancelación fue procesado por la operación fondo.

Si su código en el controlador de eventos DoWork detecta una solicitud cancelación mediante la comprobación de la bandera CancellationPending y el establecimiento de la bandera Cancelar de DoWorkEventArgs true, la bandera cancelado de RunWorkerCompletedEventArgs También se establecerá en cierto .

+2

Ahora simplemente me siento tonto. Hice una lectura del tema de MSDN en el BackgroundWoker. Pero tal vez no leí el tema de RunWorkerCompletedEventArgs. De todos modos, muchas gracias por la rápida respuesta clara. – Smur