C# &引用;创建窗口句柄时出错";在创建多个表单时

C# &引用;创建窗口句柄时出错";在创建多个表单时,c#,multithreading,winforms,handles,window-handles,C#,Multithreading,Winforms,Handles,Window Handles,我正在创建几个windows窗体,其中包含许多异步控件(每个控件都位于一个线程上,该线程创建的唯一目的是打开该窗体) 最大打印量为800,远未达到极限 有什么问题吗?我认为图形操作必须在主线程中完成。我本以为你的代码会更快崩溃。您是否尝试在主线程中运行它以查看可以创建多少个窗口?默认限制为10000。你检查过你的实际限额了吗?此外,这可能与用户对象的最大数量有关。1。如何检查应用程序的限制设置?2.我如何检查用户对象的数量?阅读和编辑。我需要快速创建许多表单。加载它们需要几秒钟的时间,我真的不希

我正在创建几个windows窗体,其中包含许多异步控件(每个控件都位于一个线程上,该线程创建的唯一目的是打开该窗体)

最大打印量为800,远未达到极限


有什么问题吗?

我认为图形操作必须在主线程中完成。我本以为你的代码会更快崩溃。您是否尝试在主线程中运行它以查看可以创建多少个窗口?

默认限制为10000。你检查过你的实际限额了吗?此外,这可能与用户对象的最大数量有关。1。如何检查应用程序的限制设置?2.我如何检查用户对象的数量?阅读和编辑。我需要快速创建许多表单。加载它们需要几秒钟的时间,我真的不希望它们出现,因为这是一个测试它们是否成功加载-我会在加载后立即关闭它们。
for(var i = 0; i < 10; i++)
{
    var thread = new Thread(() =>
    {
        var form = new FormX();
        form.ShowDialog();
    });
    thread.Start();
}
var handleThread = new Thread(() =>
{
    while(true)
    {
        System.Diagnostics.Debug.WriteLine(System.Diagnostics.Process.GetCurrentProcess().HandleCount);
    }
});
handleThread.Start();