多くのコントロールを非同期的に(いくつかのフォームを開く目的で作成されたスレッドごとに)いくつか作成します。複数のフォームを作成する際に "ウィンドウハンドルを作成中にエラーが発生する"
for(var i = 0; i < 10; i++)
{
var thread = new Thread(() =>
{
var form = new FormX();
form.ShowDialog();
});
thread.Start();
}
私はいつもこのエラー「ウィンドウハンドルの作成中のエラー」を受け取ります。私は限界が10.000のハンドルであることをグーグルで試しました。最大で
var handleThread = new Thread(() =>
{
while(true)
{
System.Diagnostics.Debug.WriteLine(System.Diagnostics.Process.GetCurrentProcess().HandleCount);
}
});
handleThread.Start();
それは800のように出力し、限界に近いどこにもありません。しかし、私はこのようなハンドルの量をチェックする別のスレッドを持っています。
何が問題なのですか?
**デフォルト**の上限は10,000です。実際の制限を確認しましたか?また、これはユーザーオブジェクトの最大数に関連している可能性があります。 –
1.制限のアプリケーション設定を確認するにはどうすればよいですか? 2.ユーザーオブジェクトの金額を確認するにはどうすればよいですか? –
[this](https://blogs.technet.microsoft.com/markrussinovich/2009/09/29/pushing-the-limits-of-windows-handles/)と[that](https:// msdn。 microsoft.com/en-us/library/windows/desktop/ms725486(v=vs.85).aspx)。 –