En C#, il existe une méthode SetApartmentState
dans la classe Thread
. Comment faire la même chose en C++?Quel est l'équivalent de Thread.SetApartmentState en C++?
Répondre
Pour les processus non gérés, vous contrôlez le modèle d'appartement utilisé pour un thread en passant les paramètres appropriés à CoInitializeEx()
. Larry Osterman a écrit un grand petit guide à ces:
...
Lorsqu'un thread appelleCoInitializeEx
(ouCoInitialize
), le fil dit COM lequel des deux types d'appartements, il est prêt à hôte. Pour indiquer que le thread doit vivre dans le MTA, vous passer leCOINIT_MULTITHREADED
àCoInitializeEx
. Pour indiquer que le fil doit accueillir un STA, soit appelerCoInitialize
ou passer le drapeauCOINIT_APARTMENTTHREADED
à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 façon dont vous implémentez les threads dans votre application. Win32? pthreads? boost :: threads? Quelle que soit l'API que vous utilisez, elle 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
On dirait qu'il applique à ++ géré c.