Se le operazioni che richiedono tempo e CPU hanno luogo all'interno di un evento, la tua applicazione non sarà in grado di gestire nuovi messaggi in arrivo, compresi quelli di ridisegno della videata, e pertanto la tua applicazione apparirà "bloccata" dal punto di vista dell'utente ma anche di quello del sistema operativo.
Sposta magari quella logica all'interno di un
BackgroundWorker, in modo da eseguirla su un thread separato lasciando l'applicazione libera di rispondere a eventuali messaggi.
Occorre fare attenzione che non siano possibili avvii multipli del processo oppure chiusure improvvise del programma senza che questo abbia verificato la conclusione effettiva delle operazioni.
Ciao!