2012-09-14 34 views
5

Sono interessato a sapere in che modo lo scheduler termina un'attività in esecuzione. Ho aggiunto un'app ai processi dell'Utilità di pianificazione, e come quando si preme end in Utilità di pianificazione per il mio lavoro (dopo averlo avviato dall'utilità di pianificazione), l'attività viene interrotta da Windows (non ha ricevuto i messaggi WM_QUIT o WM_CLOSE in la mia app). Inoltre, non ho trovato un modo per configurare come voglio che il mio compito venga chiuso nell'Utilità di pianificazione. Il mio obiettivo è quello di trattare il messaggio che viene inviato dall'Utilità di pianificazione (se presente) e chiudere bene la mia app.In che modo Task Scheduler termina un processo in esecuzione?

risposta

2

Probabilmente il processo viene interrotto con la funzione di Windows TerminateProcess(). La coda dei messaggi non ha nulla a che fare con questo. Non c'è modo di configurarlo e non c'è modo di intrappolare TerminateProcess.

Se è necessario eseguire per lunghi periodi di tempo, prendere in considerazione la creazione di un vero servizio di Windows invece di utilizzare l'Utilità di pianificazione. Quindi riceverai le notifiche di controllo del servizio, comprese le notifiche per lo spegnimento, che ti permetteranno di ripulire prima che il servizio esca.

Problemi correlati