> By the way, Ian: what did you mean by "MTA components will
> never be reentered on a single thread, but STA components can
> be". AFAIK, MTA components CAN reenter into themselves either
> directly or indirectly...

I'm sure what Ian meant was this: if an MTA-based object makes an
out-of-apartment call, that thread (say, thread A) is blocked on the
return of the that. If another call comes in for that object, or if the
causality re-enters the same object, that call will be serviced with
thread B, never thread A. Because thread A is blocking on the return of
the first outbound call.

In the case of STA-based object, if it makes an out-of-apartment call,
if another call or the same causality reenters that object, it will
*always* be reentered by the same thread. Because the message pump is
being serviced while the outbound call is going on.

You can read messages from the Advanced DOTNET archive, unsubscribe from Advanced 
DOTNET, or
subscribe to other DevelopMentor lists at http://discuss.develop.com.

Reply via email to