std :: Thread.join ha tre funzioni posso pensare off-mano e alcuni altri:
a) incoraggia continuo creazione/terminazione/distruzione di fili, così martellare prestazioni e aumentare la probabilty di perdite, thread-runaway, memory-funaway e generale perdita di controllo della tua app.
b) Stuffa i gestori di eventi GUI imponendo attese indesiderate, con conseguente 'app clessidra' che i tuoi clienti odieranno.
c) Le app non vengono arrestate perché sono in attesa della chiusura di un thread non reversibile e non interrompibile.
d) Altre cose cattive.
Capisco che siete nuovi al multithreading e vi auguro il meglio. Inoltre, considera che ho avuto un sacco di Adnams Broadside stasera, ma:
Join(), e sono amici in altri linguaggi come TThread.WaitFor, (Delphi), sono a multithreading efficiente come Windows ME era quello di operare sistemi.
Si prega di provare a progredire e comprendere altri concetti multithread: pool, attività, thread di app-lifetime, comunicazioni tra thread tramite code produttore-consumatore. In effetti, quasi tutto tranne Join().
fonte
2013-03-01 01:40:57
Grazie David per il montaggio per renderlo più chiaro. Martin: Ho provato a google ma ho visto 4-5 campioni che hanno avuto la stessa idea e non mostra realmente ciò che il join sta facendo dal mio punto di vista..Penso che ppl qui sia ben informato e fornirebbe le migliori risposte con il codice campioni. – Guagua