Il metodo Sleep mette in attesa il thread primario dell'applicazione, che è anche il thread che gestisce i messaggi in arrivo all'applicazione, tra cui quello che avverte l'interfaccia della necessità di ridisegnarsi.

Usando Sleep, il thread rimane bloccato andando contestualmente a bloccare tutti i messaggi di refresh, impedendo quindi l'aggiornamento grafico dell'applicazione fino al termine della lunga elaborazione che si vuole intervallare con la ProgressBar.

Per i processi lunghi, meglio affidarsi alla programmazione multithreading, oppure delegare a un Timer il compito di chiudere la finestra dopo qualche secondo, mostrata e aggiornata forzatamente appena prima di avviare l'elaborazione.

Ciao!