ciao,
probailmente ti bastera' impostare la proprieta' " Control.CheckForIllegalCrossThreadCalls=false" e fare l'aggiornamento normale dentro al Thread che lanci.
Quindi puoi usare un codice tipo questo:
Control.CheckForIllegalCrossThreadCalls = false;
Thread t = new Thread(
delegate()
{
for (int i = 0; i < 100; i++)
{
progressBar1.Value++;
Thread.Sleep(100);
}
MessageBox.Show("Finito");
});
t.Priority = ThreadPriority.Lowest;
t.Start();
come vedi viene lanciato un thread, e lasciato aspettare (per simulare la pesantezza) ma con l'opzione CheckForIllegalCrossThreadCalls puoi evitare di passare tramite delegate...diciamo che te lo fa lui sotto
ciao.
Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo