2011-06-02 244 views
2

我有.Net應用程序與某些COM對象進行通信,並且我在COM中遇到以下異常: System.Runtime.InteropServices.COMException(0x800700A4):系統中無法創建更多線程。 (異常來自HRESULT:0x800700A4).Net:我收到以下異常InteropServices.COMException:「系統中無法創建更多線程。」

這是否意味着COM對象創建了太多的線程(據我所知,線程限制是針對進程)或者Windows中有太多線程(可能有太多的句柄) ? 或誰負責失敗,我的系統或COM對象?

+1

打開任務管理器,拉下查看菜單並選擇選擇列菜單項。然後找到「線程」複選框並檢查它,然後在該列上排序並查看哪個應用程序正在創建所有線程。 – 2011-06-02 12:56:13

+0

謝謝!但是我只記錄了崩潰的日誌......我有perfmon數據,但只針對整個系統,而不是每個進程。 – 2011-06-02 12:59:28

+0

你能重現這個問題嗎? – 2011-06-02 14:42:18

回答

2

此問題的根本原因是COM對象正在爲每個調用創建一個新線程,導致資源相似。
This article解釋了線程限制問題:
「因爲每個線程都佔用了進程地址空間的一部分,所以進程對它們可以創建的線程數有基本的限制,這是由地址空間的大小加上線程堆棧尺寸。」

相關問題