Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Multithreading problem
lunedì 20 ottobre 2008 - 09.56
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
From15
Profilo
| Newbie
11
messaggi | Data Invio:
lun 20 ott 2008 - 09:56
Mi sono appena iscritto e colgo l'occasione per salutare tutti gli sviluppatori.
Ora vi espongo il mio problema, ho una form con due bottoni start e stop i quali controllano l'animazione di un controllo creato da me. Tale controllo non è altro che un'animazione stile Vista (Il cerchio che si colora girando). Per l'avvio del controllo utilizzo un thread, in pratica con bottono start creao un thread, disegno e posiziono il mio controllo nella form e lo avvio (L'animazione e gestita con un Threeding.Timer). Ho aggiunto un bottone nella form il quale non fa altro che fare uno Sleep(4000) del threeed principale, cioè quello della form. La mi domanda è questa: perchè alla pressione del tasto l'animazione non continua ma aspetta anche lei che sono trascorsi 3 secondi, per ripartire? In pratica vorrei che l'animazione continuasse anche se svolgo operazioni "pesanti" su un'altro thread, che in questo caso è quello principale!!
Aspetto suggerimenti.
Saluti
Andrea
P.s. Mi sono dimenticato sviluppo in c#
aiedail92
Profilo
| Expert
993
messaggi | Data Invio:
lun 20 ott 2008 - 13:26
Ciao
L'applicazione si ferma perchè se il thread che gestisce la coda dei messaggi della finestra (e quindi il thread principale) è impegnato in altri lavori, la finestra non ha modo di ricevere i messaggi (aggiornamento, input di mouse e tastiera ecc). Quindi i lavori pesanti vanno sempre delegati a thread separati, altrimenti l'applicazione cessa di rispondere finchè non può ricominciare ad elaborare la coda.
Luca
From15
Profilo
| Newbie
11
messaggi | Data Invio:
lun 20 ott 2008 - 13:51
Quindi il fatto che due thread separati non si influenzano, non vale se uno di questi due è il thread della form sopprattutto quando si parla di grafica della form.
Mi sembra di aver capito, in pratica se io "fermo" il thread della form per 4 o 5 secondi se un'altro thread separato ha degli eventi di paint o update su un controllo che è sulla form (Controllo creato dal thread separato), esso viene eseguito ma in realtà viene messo in coda e servito quando il thred della form uscirà dallo sleep.
Grazie per l'informazione
Andrea
aiedail92
Profilo
| Expert
993
messaggi | Data Invio:
lun 20 ott 2008 - 13:55
Sì esatto, funziona proprio in quel modo.
Luca
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !