我有遺留的COM組件,我的任務是編寫包裝COM的Web服務並啓用併發非阻塞調用。在C#多線程環境中使用遺留COM組件
首先,因爲COM對象本身是無狀態的,所以我決定使用[ThreadStatic]屬性,以便每個線程都有它自己的COM對象實例,以防止使用lock {}語句並啓用實際併發處理,但似乎所有調用仍然同步進行。
我寫了一個測試代碼,它從COM組件中爲{{}循環同步運行一個方法,然後添加第二個線程,但完全相同,但對於COM對象的另一個實例,並且我看不到更改,X不管線程數量多少,調用總是消耗Y倍時間。它就像有一個靜態鎖或什麼...
儘管如此,單獨的進程可以同時處理每一個呼叫真實。什麼阻止單獨的線程行爲相同?
我能做些什麼來啓用COM組件的實際併發調用?