COM的線程管理

單線程單元:使COM對象可以存在與同一進程中的不同線程中。

在STA前,所有組件的訪問都通過應用程序的主線成進行下去。假設利用進程外服務器通過某一組件的100個實例來管理100個客戶,那麼,客戶程序對於一個實例的訪問講被串行化這是因爲它必須在主線成上發生。這種設置對於組件開發着是有幫助的,因爲這樣他們就不會被並行事件所困擾,但是,在大型客戶端、服務器應用程序中,這種特性是不被允許的。

STA使得一個客戶可以創建任意數目的線程來包容COM對象,而且,它使得在組件的實現中,應用多線程的組件開發成爲可能。無論如何,每一個應用COM的線程都成爲它自己的STAte。

 

多線程單元

 

單元

COM單元是一種概念性的實體,使我們能夠以一種邏輯的方式來考慮組件和它們的客戶程序。單元表明,在一個單元內部的軟件之間存在一些類型的隔離。單元不是一個線程,但是一個線程只屬於一個單元。單元也不是一個COM對象實例,但每一COM實例也值屬於一個單元。

 

每個調用ConInitialize的線程都會被加入單元。

 

http://blog.csdn.net/wishfly/article/details/3319428

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章