共用方式為


線程考量

COM+ 佇列元件錄製器能夠在程序的多執行緒單元 (MTA) 或單一執行緒單元 (STA) 中運行。 當錄製器在 STA 中執行時,COM+ 要求每個包含物件的 Apartment 必須配備一個 訊息佇列,以處理來自其他進程及同一進程中其他 Apartment 的呼叫。 這表示線程的工作函式必須有訊息迴圈。 具現化佇列元件時,傳回的介面指標一律是 Proxy 介面指標,而不是直接介面指標。 指標實際上是錄製器實例的參考。 如果這個錄製器介面引用被傳遞至另一個執行緒,原始執行緒仍必須運行 Windows 的訊息迴圈,才能讓接收執行緒解組該介面。 如果情況並非如此,接收線程會在呼叫 coUnmarshalInterface 時卡住。

如果您使用基本類型來同步處理線程,請考慮使用 MsgWaitForMultipleObjects,而不是其他同步處理函式。 這會檢查佇列中的訊息,以及同步處理物件的狀態。