grazie mille, ottimo consiglio non lo sapevo.... :rollo:Originariamente inviato da shodan
Intanto usare CreateThread può causare problemi di memory leak.
In C/C++ è meglio usare _beginthreadex come consigliato su vari testi e manuali per ovviare a questo problema, in quanto alloca delle strutture interne alla libreria del C/C++ che CreateThread non fa.
per la sezione critica non so, non mi sembra ne valga la pena...Originariamente inviato da shodan
Poi, regola aurea lavorando con i thread è che ogni variabile condivisa dai thread stessi debba essere protetta da un mutex, altrimenti si possono verificare delle race condition.
In questo caso mi sembra difficile possa accadere, ma non do per scontato che non possano accadere cose impreviste.
Infine la ExitThread la trovo inutile. A differenza della TerminateThread, libera le risorse del sysop, ma non quelle eventualmente allocate dal thread (le new) e se non ricordo male, non vengono chiamati i distruttori.
Meglio lasciare che il thread termini naturalmente con un bel return da qualche parte.
Sempre in pseudo codice:![]()
il rendere esplicita l'uscita del thread la vedo come la sicurezza che le risorse vengano rilasciate completamente..:master: ho visto che con questo metodo si può usare _endthreadex(0)
grazie mille cmq! utilissimo intervento..
![]()