2010-07-12 51 views
0

任何人都可以請我告訴我如何獲得當前進程的「用戶對象」(如任務管理器中所示)的當前計數。VB.Net 3.5 Windows - 如何獲得進程用戶對象數

我看到如何使用獲得句柄計數:

Process.GetCurrentProcess.HandleCount 

但是我們的應用程序可以只打開一個特定形式的17個實例達到10000用戶對象的數量,所以我們想嘗試和儆用戶認爲資源在達到限制和應用程序炸彈之前變得越來越低。

+1

我建議您通過探查運行你的應用程序,因爲它可能被泄露的用戶對象。 – Helen 2010-07-12 16:51:20

+0

嗨海倫, 目前似乎沒有泄漏,因爲USER對象計數返回到它在我們打開它後關閉表單時開始的位置。它不會出現在hemorrage USER對象中。該表單有很多用戶控件,每個控件都帶有一個完整的.Net控件。 – Dib 2010-07-15 08:10:18

回答

3

如果我正在考慮正確類型的用戶對象,可以使用GetGuiResources API函數來完成。對於C#示例(第二個發送1作爲標誌),請參閱here的pinvoke頁面。

下面的代碼的VB翻譯:

Imports System.Runtime.InteropServices 

<DllImport("User32")> _ 
Public Shared Function GetGuiResources(ByVal hProcess As IntPtr, ByVal uiFlags As Integer) As Integer 
End Function 

Public Shared Function GetGuiResourcesUserCount() As Integer 
    Return GetGuiResources(Process.GetCurrentProcess().Handle, 1) 
End Function 
+1

這是完美的。謝謝。 – Dib 2010-07-15 08:06:10

相關問題