我正在异步创建一些带有许多控件的窗体(每个窗口都在一个创建的线程上,用于打开该窗体)。
for(var i = 0; i < 10; i++)
{
var thread = new Thread(() =>
{
var form = new FormX();
form.ShowDialog();
});
thread.Start();
}
我总是收到此错误&#34;错误创建窗口句柄&#34;。我试着谷歌搜索限制是10.000句柄。但是,我有另一个线程来检查这样的句柄数量:
var handleThread = new Thread(() =>
{
while(true)
{
System.Diagnostics.Debug.WriteLine(System.Diagnostics.Process.GetCurrentProcess().HandleCount);
}
});
handleThread.Start();
最大打印出800,这远远不是极限。
可能是什么问题?
答案 0 :(得分:0)
我认为图形操作必须在主线程中完成。我本来希望你的代码崩溃得更快。您是否尝试在主线程中运行它以查看可以创建多少个窗口?