我正在開發一個c#多線程應用程序,因爲有些年份。幾天前我注意到,它在運行時會不斷創建新的工作線程(幾乎每秒一次)。使用Visual Studio 2013「線程」窗口這些線程具有無名稱和位置「不可用」,所以我無法檢查這些線程在哪裏啓動。 我給我的代碼中生成的所有線程的名稱,但仍然這些線程創建「無名」,所以我想他們可能會生成一個外部程序集。如何知道哪個方法啓動了一個工作線程
我的應用程序集成了NLog.dll(用於登錄txt文件),System.Data.SQLite.dll(用於數據讀取和寫入到db3數據庫)。它還使用UDP和TCP sokets進行數據交換。
例如: 運行應用程序2分鐘後,我有70個線程。然後,20分鐘後,線程數爲190!如果我在Visual Studio中檢查線程窗口,我發現所有具有「類別」「工作線程」和「名稱」的新線程都是「無名稱」。
這裏我的Visual Studio線程窗口的快照:
任何人都可以建議我如何找到這個線程氾濫的由來? 在此先感謝!
如果是不是在你的代碼中,你只能剝奪你的項目來找到根本原因(如果它是第三方庫)。另一種可能性是一些反病毒工具,它們會將.dll注入創建的進程中以檢查它們,有時甚至會發瘋,特別是在開發時。 – Oliver