--
-----------------------------------
Fabio Giliberti, Agile Telecom Srl.
MSN: f.gil...@agiletelecom.com
ICQ#: 291157840
Skype: fabio.smsdriver
> A volte ho notato pero' che alcuni threads rimangono attivi (senza occupare
> CPU) e non rieco a capire come mai.
Usi oggetti di sincronizzazione (critical section, mutex, eventi, ecc..)?
Perché č possibile che i thread "freezed" che vedi stiano in attesa ceh
uno di essi entri in stato segnalato...
> Ho fatto un metodo nel mio thread che scrive su un file i propri dati (una
> specie di dump) per vedere se ci sono cose che non ho previsto e mi sto
> chiedendo se esiste un modo per mandare un messaggio con un sendmessage()
Immagino tu intenda PostThreadMessage(). Sě, devi avere tutti gli id e
mandare loro un messaggio.
--
questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad ab...@newsland.it
> A volte ho notato pero' che alcuni threads rimangono attivi (senza occupare
> CPU) e non rieco a capire come mai.
Usi oggetti di sincronizzazione (critical section, mutex, eventi, ecc..)?
Perché č possibile che i thread "frozen" che vedi stiano in attesa ceh uno
di essi entri in stato segnalato...
> Ho fatto un metodo nel mio thread che scrive su un file i propri dati (una
> specie di dump) per vedere se ci sono cose che non ho previsto e mi sto
> chiedendo se esiste un modo per mandare un messaggio con un sendmessage()
Immagino tu intenda PostThreadMessage(). Sě, devi avere tutti gli id e
"Andrea Laforgia" <x...@xx.xx> ha scritto nel messaggio
news:g62ejm$nt$1...@news.newsland.it...
> Fabio Giliberti ha scritto:
>
>> A volte ho notato pero' che alcuni threads rimangono attivi (senza
>> occupare
>> CPU) e non rieco a capire come mai.
>
> Usi oggetti di sincronizzazione (critical section, mutex, eventi, ecc..)?
> Perché č possibile che i thread "frozen" che vedi stiano in attesa ceh uno
> di essi entri in stato segnalato...
No non ci sono mutex o semafori particolari che possano interrompere
l'execute del thread e ogni thread č perfettamente autonomo non accedendo a
risorse esterne di altri forms o moduli.
>
>> Ho fatto un metodo nel mio thread che scrive su un file i propri dati
>> (una
>> specie di dump) per vedere se ci sono cose che non ho previsto e mi sto
>> chiedendo se esiste un modo per mandare un messaggio con un sendmessage()
>
> Immagino tu intenda PostThreadMessage(). Sě, devi avere tutti gli id e
> mandare loro un messaggio.
Si intendo proprio quello, speravo pero' che si potesse fare un broadcast
del messaggio in modo che
venisse raccolto da tutti i thread senza dovermi tenere aggiornato l'elenco
degli id.
Faro' un TObjectList al quale aggiungero' il thread al momento della
creazione e l'extract nell'evento OnTerminate del thread.
E a questo punto tanto vale fare un ciclo su tutti i threads attivi e
chiamare direttamente il metodo che fa il dump nel file invece che il
Post...il post aveva senso se si poteva fare una specie di broadcast a
tutti.
Grazie.
>Si intendo proprio quello, speravo pero' che si potesse fare un broadcast
>del messaggio in modo che
Non puoi perché gli id dei thread sono system-wide e non legati a una
singola applicazione.
>E a questo punto tanto vale fare un ciclo su tutti i threads attivi e
>chiamare direttamente il metodo che fa il dump nel file invece che il
>Post...il post aveva senso se si poteva fare una specie di broadcast a
>tutti.
A me non piace questa tecnica. Io preferisco l'isolamento totale tra
thread primario e thread secondari (e credimi, meno fai accessi
diretti tra loro, meglio č). Sia dal thread secondario verso il thread
primario, che nel verso contrario, io uso code di messaggi. Meno si
sincronizzano tra loro, meglio č.