En C #, il existe une méthode SetApartmentState
dans la classe Thread
. Comment faire la même chose en C ++?
Pour les processus non gérés, vous contrôlez le modèle d’appartement utilisé pour un thread en transmettant les parameters appropriés à CoInitializeEx()
. Larry Osterman a rédigé un excellent petit guide sur ces sujets:
…
Lorsqu’un thread appelleCoInitializeEx
(ouCoInitialize
), le thread indique à COM lequel des deux types d’appartement qu’il est prêt à héberger. Pour indiquer que le thread doit vivre dans le MTA, vous transmettez l’indicateurCoInitializeEx
àCoInitializeEx
. Pour indiquer que le thread doit héberger un STA, appelezCoInitialize
ou transmettez l’indicateurCoInitializeEx
àCoInitializeEx
.
…
– http://blogs.msdn.com/larryosterman/archive/2004/04/28/122240.aspx
c ++ n’a pas de support de thread intégré. Ce que vous recherchez dépend de la manière dont vous implémentez les threads dans votre application. Win32? pthreads? boost :: threads? Quelle que soit l’API que vous utilisez, cela déterminera la réponse à votre question.
EDIT: ressemble à ceci peut avoir un exemple pour vous: http://msdn.microsoft.com/en-us/library/system.threading.apartmentstate.aspx
Il semble que cela s’applique à c ++ géré.