Why is the limit of window handles per process 10,000?
If your program runs haywire, you will find that it manages to
create about 10,000 window manager objects and then the system
won't let it have any more.
Why stop at 10,000?
The first answer is "If you have to ask, you're probably doing something
wrong."
Programs shouldn't be creating anywhere near
ten thousands window manager objects in the first place.
Furthermore, as we saw last time,
the maximum number of window manager objects that can be created
is around 32,700.
Giving a program 10,000 is already a third of the total amount
available.
That's already pretty darned generous, if you ask me.
Preventing a program from running away and consuming all of the
window manager objects
is an attempt to contain the damage caused by a runaway program.
Even if a program goes haywire,
there's still around 20,000 objects
available for the other programs to use.
One of them might even be Task Manager,
which the user fired up in order to kill the runaway program.