Re: Why are my ATL objects behaving like single threaded?
You can use the STA thread pool class factory for your
STA objects and put the main thread in the MTA. See
DECLARE_CLASSFACTORY_AUTO_THREAD and
CComAutoThreadModule. Note in this manner you may
have several instances of the same ATL COM class running
in different STAs, but each object will be living in only
one STA.
--
=====================================
Alexander Nickolov
Microsoft MVP [VC], MCSD
email: agnickolov@mvps.org
MVP VC FAQ: http://www.mvps.org/vcfaq
=====================================
"Aaron Lawrence" <aaronlNOT@HEREintegration.co.nz> wrote in message
news:uiL4I$u$GHA.4892@TK2MSFTNGP04.phx.gbl...
Igor Tandetnik wrote:
So why not have your main thread enter MTA?
Indeed. That would be somewhat rational.
However there are lots of objects that have been written without any
thread protection, assuming (or just not even thinking about) that they
are in the STA.
These objects are fairly lightweight, only covering simple business logic,
so simple serialisation is not unreasonable. Though possibly they could
live in separate STAs for a minor performance improvement.
But some of the objects are worked threads and these ones were assuming
they were in the MTA ...