線程考慮
COM+ 佇列元件錄製器能夠在進程的多線程 Apartment (MTA) 或單個線程 Apartment 中執行 。 當錄製器在 STA 中執行時,COM+ 會要求包含物件的每個 Apartment 都必須有消息 佇列 佇列,才能處理相同進程內其他進程和 Apartment 的呼叫。 這表示線程的工作函式必須有訊息迴圈。 具現化佇列元件時,傳回的介面指標一律是 Proxy 介面指標,而不是直接介面指標。 指標實際上是錄製器實例的參考。 如果這個錄製器介面參考傳遞至另一個線程,原始線程仍必須執行 Windows 訊息迴圈,讓接收線程可以取消分割介面。 如果情況並非如此,接收線程會在對 CoUnmarshalInterface 的呼叫中停止回應。
如果您使用基本類型來同步處理線程,請考慮使用 MsgWaitForMultipleObjects 而非其他同步處理函式。 這會檢查佇列中的訊息,以及同步處理物件的狀態。