Necesita ayuda para detener el subproceso BackgroundWorker. Estoy tratando de detener un hilo de trabajador de fondo. Esto es lo que estoy haciendo:Necesita ayuda para detener el subproceso BackgroundWorker
El botón de parada de clic (capa de interfaz de usuario):
if (backgroundWorker.IsBusy == true &&
backgroundWorker.WorkerSupportsCancellation == true)
{
backgroundWorker.CancelAsync();
}
En caso DoWork (capa de interfaz de usuario):
if ((backgroundWorker.CancellationPending == true))
{
e.Cancel = true;
}
else
{
//Function which progresses the progress bar is called
//here with its definition in business layer
}
Una vez que el evento DoWork se dispara y mi el control del programa está en la función definida en la capa empresarial, ¿cómo puedo volver al evento DoWork para establecer 'e.Cancel = true'?
.. Y si> no
stuartd
@ Stuart - Eso es correcto, como se menciona en la respuesta. Si no hay ningún bucle, no hay una buena manera de apagarlo sin matar forzosamente el hilo de la secuencia de la GUI. –
@ Øyvind Knobloch-Bråthen - Por favor dígame cuál es la MALA manera de matar a la fuerza el hilo de Backgroundworker del hilo de la interfaz gráfica de usuario. (sin bucle en DoWork) – Zeeshanef