|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Messaggi: n/a
|
[.NET - C#] Aggiornamento elementi GUI e thread
Salve a tutti!
Ho questo piccolo problema: sono in un'applicazione WinForm semplicissima. Sul form principale c'è un bottone al cui click aggiorno il testo del bottone stesso e poi mando in esecuzione un thread secondario molto "pesante" (con un classicissimo ThreadStart ts = new ThreadStart( ... ); Thread theThread = new hread(ts); theThread.Start(); ). Il problema è così facendo, la modifica al testo del bottone viene visualizzata solo dopo l'esecuzione del secondo thread! E l'intera GUI mi rimane non responsiva fino al termine del thread stesso. Avete idea di come ovviare a questo problema? Grazie 1000 anticipatamente! |
|
|
|
#2 |
|
Senior Member
Iscritto dal: Dec 2006
Messaggi: 650
|
Dopo l'aggiornamento del testo fai processare tutti i messaggi nella coda con un bel Application.DoEvents(); e poi lancia il thread. Una cosa tipo :
Codice:
Button1.Text = "Pippo"; Application.DoEvents(); Thread _t = new Thread(new ThreadStart..blablabla... Potresti postare il codice della funzione legata all'evento del bottone? |
|
|
|
|
|
#3 |
|
Messaggi: n/a
|
Grazie mille anzi tutto!
Allora premetto: già ho migliorato la situazione utilizzato un ThreadPool piuttosto che il ThreadStart->Thread.Start() In realtà quello che faccio nel metodo che implementa il click del bottone è banale: Codice:
labelStatus.Text = "Calculating..."; progressBar1.Maximum = pictureBox1.Width; pictureBox1.Image = null; progressBar1.Value = 0; ThreadStart t1 = new ThreadStart(doWork); Thread theThread = new Thread(t1); theThread.Start(); Grazie ancora! |
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 07:29.



















