Il precedente inizializza COM in un modo che inserisce il thread chiamante nel proprio apartment a thread singolo (STA). Quest'ultimo inizializza COM in un modo che inserisce il thread chiamante in un apartment multi-threaded condiviso (MTA). I due appartamenti hanno una semantica molto diversa, specialmente nel modo in cui gli oggetti COM sono accessibili attraverso i limiti dei thread. I thread in diversi appartamenti devono utilizzare i proxy per condividere gli oggetti COM, ma COM fornisce la sincronizzazione per te (tramite le code dei messaggi per thread). I thread nello stesso apartment possono condividere oggetti COM senza utilizzare i proxy, ma devono essere sincronizzati manualmente, ad esempio con sezioni o mutex critici.
Quindi sì, c'è una differenza e può essere molto significativa. Si prega di leggere la documentazione su MSDN, è molto dettagliata.
CoInitialize function
CoInitializeEx function
Processes, Threads, and Apartments
fonte
2013-11-09 20:02:56
Hai letto la documentazione sul 'CoInitialize'? –
sì, ma non è chiaro – user382591
Forse potresti approfondire su quale parte della documentazione stai combattendo. –