我有一台非常强大的开发机器和三台显示器,所以经过一些密集的编码/问题修复后,我倾向于启动并运行大量程序。其中一些程序是标签式的;诸如 Visual Studio、FireFox、Notepad++ 之类的东西。如果我不努力关闭未使用的选项卡,似乎过了一段时间 Windows 只是拒绝打开更多,错误,窗口。我可以通过关闭一个现有的来打开另一个,但除非我这样做,否则它只是拒绝打开任何一个。
有人见过这个吗?我认为对于可以同时处理多少个 Windows,这是一个硬性限制。
是的,如果我没记错的话,整个系统上的硬限制大约是 32,700 个窗口句柄,或者每个进程 10,000 个。应该注意的是,不仅窗口消耗一个窗口句柄,而且每个窗口上的每个控件(每个按钮、面板、组合框等)都消耗一个窗口句柄。
我见过使用超过 2000 个窗口句柄的单个对话框(虽然重量太重),但通常它们使用的更少。
您可以通过启用任务管理器中的“用户对象”列来了解进程消耗的窗口句柄数量,这包括窗口句柄。
有关背景信息,另请参阅:
http://blogs.msdn.com/oldnewthing/archive/2007/07/18/3926581.aspx
http://blogs.msdn.com/oldnewthing/archive/2005/03/15/395866.aspx
http://msdn.microsoft.com/en-us/library/ms725486(VS.85).aspx