2012-12-10 16 views
7

Oppure un altro aspetto delle domande è: dovrei gestire la possibilità che il modulo venga chiuso durante la codifica di un lavoratore in background?Cosa succede a un lavoratore in background che è ancora in esecuzione quando si chiude il modulo?

Ho, ad esempio, codice che esegue una query SQL (che non è cancellabile) in un worker in background quindi quando completa "boldifies" in un controllo del calendario per far corrispondere le date restituite dalla query.

Sono curioso di sapere in che cosa consiste l'operatore in background in tale situazione? - non attivare l'evento RunWorkerComplete? - ignora le chiamate alla finestra di dialogo nella chiamata alla funzione RunWorkerComplete perché non è più una finestra?

risposta

7

Se il modulo che si sta chiudendo è il modulo principale (in altre parole l'unico), il thread di background worker si chiuderà automaticamente con la chiusura dell'applicazione.

Se non è il modulo principale, il thread in background continuerà a essere in esecuzione. In questo caso è necessario interrompere manualmente il thread in background con la chiusura del modulo

Problemi correlati