我開發了我的第一個COM組件(是的,在COM開發領域的一個新手),初始化是用COINIT_MULTITHREADED
完成的。此外,此COM組件是本地服務器可執行文件。但是,我沒有向該組件添加任何同步代碼。你怎麼看:我必須添加CRITICAL_SECTION
代碼或MS COM架構爲我處理它?提前致謝。[C++]我的COM服務器是否需要同步?
1
A
回答
1
由於您指定了COINIT_MULTITHREADED,COM允許多個同時呼叫到您的服務器,因此您需要自己進行同步。
如果您希望COM序列化調用,請使用COINIT_APPARTMENTHREADED。
查看MSDN的詳細信息。
0
是的。
如果您知道將從多個方向(線程)訪問數據,請使用您自己的互斥機制,不要假設MS COM體系結構來處理它。
至少,基於微軟所做的其他技術,我至少會這樣做,我曾經有過這樣的經歷 - 就像「我們做基礎,剩下的事情」。至少使用本地API。
將臨界區對象包裝在一個不錯的類中,然後踢它!
相關問題
- 1. 我是否需要同步writeObject()?
- 2. 這是否需要同步?
- 3. Monitor.Wait是否需要同步?
- 4. 我是否也需要服務層?
- 5. 我是否需要在我的服務器上安裝SSL?
- 6. 需要我的COM服務器實例的共享屬性
- 7. Apache Cordova是否需要服務器?
- 8. 'node.js':是否需要運行服務器?
- 9. JSONP是否需要修改服務器?
- 10. React.js是否需要服務器端?
- 11. 是否可以將我的Pyzor服務器與公共Pyzor服務器同步?
- 12. SIPS服務器是否需要RADIUS服務器?
- 13. 我的服務器是否缺少它需要的javascript組件?
- 14. ViewState是否需要服務器資源?我想不是
- 15. C#的COM OLE服務器
- 16. 是否需要在我的服務器中啓用肥皂?
- 17. 我的基本PHP Socket服務器是否需要優化?
- 18. C# - 異步服務器vs同步服務器 - 套接字
- 19. Java - 是否需要volatile同步?
- 20. 緩存是否需要同步?
- 21. :是否需要任何同步?
- 22. java.util.concurrent.ConcurrentHashMap.putIfAbsent是否需要在同步塊中?
- 23. 該方法是否需要同步?
- 24. 這是否需要顯式同步?
- 25. 是否需要嵌套同步塊?
- 26. c# - 我需要兩個runat =「服務器」在同一頁
- 27. 如果我們正在同步讀取,我們是否需要同步寫入?
- 28. 聽衆服務是否需要安裝Oracle服務器?
- 29. 我是否需要將令牌發送到服務器
- 30. 我是否需要爲iphone應用程序購買服務器?
是否有外部服務器的線程模型? – sharptooth 2010-10-15 07:43:24
@sharptooth:不,COM保證不是線程安全的。 – 2010-10-15 07:55:23