App Windows UI object Windows object App code Windows object
Desktop STA thread Dispatch call 1 Outgoing call Processing input and calls Dispatch call 2 Processing input and calls
ASTA thread Dispatch call 1 Outgoing call completes Call 1 completes Processing input and all calls Processing input and related calls
ASTA thread Dispatch call 1 Outgoing call Outgoing call completes Call 1 completes Dispatch call 2 Outgoing call Outgoing call completes Call 2 completes Processing input and related calls Processing input and all calls Processing input and related calls Processing input and all calls Related callback Call 2 waiting
ASTA thread X X
Thread pool thread Async op start Real work Async complete delivery Projection returns to ASTA thread
Thread Pool threadThread pool thread Async op start Real work Async complete delivery Completion delivered where work was done
ASTA thread Dispatch call 1 Outgoing call Outgoing call completes Call 1 completes Dispatch call 2 Outgoing call Outgoing call completes Call 2 completes Processing input and related calls Processing input and all calls Processing input and related calls Processing input and all calls Related callback Call 2 waiting