2011-01-19 19 views
3

我目前正在開發一個簡單的ActiveX控件。這個控件暴露了一小組屬性和方法。現在還不知道ActiveX方法是否會從不同的線程中調用。 爲了準備好面對這種情況,我決定在控件公開的每個方法內實現線程同步。 我是否需要實現這種同步,或者它已經由Microsoft ActiveX框架實現? 我在做些什麼多餘的事情?ActiveX控件是否需要線程同步?

+0

你可以指望網絡開發者不要使用網絡工作者嗎? http://www.whatwg.org/specs/web-workers/current-work/ – 2011-01-20 00:44:46

回答

1

這是如何工作的取決於你的控件使用了什麼線程模型,但假設你的ActiveX控件使用了「APARTMENT」線程模型(它幾乎總是應該),你可以假設你的ActiveX控件上的所有方法都將被調用同一個線程。如果其他線程訪問它們,ActiveX將自動將對該線程的調用編組,以便在該線程上接收它。

同樣的道理,您絕對不能使用從您獲取的線程以外的線程調用的ActiveX對象或COM接口。如果您需要從多個線程進行調用,可以採用這種方式,但這不在此問題的範圍之內。簡介:你不必擔心你的方法被不同的線程調用,所以你不需要擔心同步。

+0

謝謝你,Taxilian – gionny 2011-01-25 22:13:15

相關問題