En una aplicación de forma triunfo, tengo una serie de roscas que se inicia así:Asegúrese de que todas las discusiones salieron
bool stop = false;
Thread[] threads = new Thread[10];
for (int i = 0; i < threads.Length; i++)
threads[i] = new Thread(new ThreadStart(Job));
// How to make sure all threads have exited, when the boolean = false
void Job()
{
while (!stop)
// Do something
}
Ahora bien, si el usuario pulsa STOP, el valor booleano para stop
se define como true, por lo los hilos salen del método Job
uno tras otro. ¿Cómo puedo asegurarme de que se salgan todos los hilos?
NOTA: Necesito el enhebrado tradicional para mi caso y TaskLibrary
no encaja en mi situación.
¿Dónde colocar este código? Esta es una aplicación de formulario de victoria y se ha lanzado el subproceso de interfaz de usuario después de crear nuevos subprocesos. – Xaqron
Si la interfaz de usuario se ha lanzado, ¿por qué preocuparse? Pero en serio, lo ubicaría en el método que maneja el botón de parada que se está presionando. –
Quiero deshabilitar la salida del programa hasta que se salgan todos los subprocesos. Si el usuario cierra el formulario principal y hay algunos hilos activos en el administrador de tareas, el usuario siente que la aplicación ha fallado (aunque todos los hilos se cerrarán después de un tiempo) – Xaqron