Attualmente, tutta l'elaborazione viene eseguita sul thread principale (UI), quindi tutta l'elaborazione deve essere completata prima che il thread dell'interfaccia utente abbia cicli liberi per ridisegnare l'interfaccia utente.
Hai 2 modi per superare questo. Il primo modo, che non è raccomandato, è quello di utilizzare
Application.DoEvents();
Eseguirlo quando si desidera che la coda dei messaggi di Windows venga elaborata.
L'altro, consigliato, modo: creare un altro thread per eseguire l'elaborazione e utilizzare un delegato per passare gli aggiornamenti dell'interfaccia utente al thread dell'interfaccia utente. Se sei nuovo nello sviluppo multithread, prova a provare a BackgroundWorker.
Dettagli sulla [classe in background] (http: // bit.ly/a9VgVn) e un [esempio di come usarlo] (http://bit.ly/ailRTF) – codingbadger