많은 컨트롤이 포함 된 몇 개의 창 폼을 비동기식으로 만듭니다. 각 폼은 해당 폼을 여는 유일한 목적으로 만들어졌습니다.여러 폼을 만드는 동안 "창 핸들을 만드는 중 오류가 발생했습니다."
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). –