确定应用程序使用的窗口句柄数的最佳方法是什么?我可以使用工具或WMI性能计数器吗?
我想运行一个应用程序并观察某种类型的计数器,并看到窗口句柄的数量正在增加.
for (int i=0; i < 1000; i++)
{
System.Threading.Thread.Sleep(1000);
RichTextBox rt = new RichTextBox();
rt.Text = "hi";
this.Controls.Add(rt);
}
Run Code Online (Sandbox Code Playgroud)
我正在运行上面的代码并在进程中观察"Handle Count"计数器,并且它似乎没有增加.我有什么不正确的看法吗?
您的计算机附带的Perfmon可以执行此操作.您还可以向任务管理器进程选项卡(处理计数)添加一列.
Perfmon说明
要获取范围内的图形,您必须在列表中右键单击它,选择属性,然后选择正确的比例(.1或.01可能是正确的)
编辑(响应添加的信息):我认为您刚刚证明创建RichTextBox不会导致Handles被分配.我不认为它真的需要一个,直到你编辑控件,它可能足够聪明,因为为一个非活动的控件分配太多的资源将使得很难在一个控件上有很多控件表格(例如,考虑Excel).