2013-07-26 50 views
0

我們必須在我們的應用程序中處理泄漏。在.Net 2.0窗口應用程序中處理泄漏

我們正在測試我們的應用程序有些觀衆對於一些200打開和關閉,並發現該句柄數是200家左右。

對於同觀衆的內存使用量是恆定的,也是GDI次數也不斷。

事情是,手柄每次增加,但不是恆定的。有時會增加5,有時會增加1,有時會減少。我們無法看到像GDI泄漏一樣的持續增長。

我們已經取消訂閱了應用程序中註冊的所有事件,並且還處理了應用程序中使用的所有控件。在應用程序中還有一些內存泄漏之前。現在處理所有的控件後,它保持不變。

那麼在這種情況下我們需要檢查的是什麼東西。我們很困惑,因爲內存/ GDI計數是恆定的,而手柄只增加。

任何建議表示讚賞。

回答

1

使用像Process Explorer這樣的工具來檢查您的過程已打開的句柄。從列表中選擇您的過程並轉到查看>下窗格視圖>句柄。默認情況下,下窗格只顯示指定的手柄。您可以轉到「查看」>「顯示未命名的句柄和映射」以將它們全部顯示出來。

+0

以前我也試過這個工具。但是,從這個角度來看,我們將如何避免這種情況,以及我們項目中的哪個部分泄漏? –

+0

@mahesh你應該做的第一件事是嘗試找到你正在泄漏什麼樣的資源句柄。它可能是一個文件,註冊表項,互斥鎖或其他資源。然後,您需要考慮應用程序在哪些位置分配和釋放資源。 –