Forms Application::Exit()引发错误(集合已修改;枚举操作可能无法执行)

Forms Application::Exit()引发错误(集合已修改;枚举操作可能无法执行),forms,visual-studio-2012,c++-cli,exit-code,Forms,Visual Studio 2012,C++ Cli,Exit Code,我有很多表单(隐藏),我需要用一个按钮将它们全部关闭,但由于某种原因,它开始抛出错误“集合已修改;枚举操作可能无法执行” 代码 这是一个错误,它告诉您正在从2个或更多线程访问一个集合,而没有锁保护 查看调用堆栈并查看正在访问的集合。 该错误表示在该线程中迭代时,ArrayList在其他线程中被更改。这可能是因为OnFormClosing方法吗?我删除了它,因为我记得在我将其应用到其他表单之前,它运行良好。是的,Exit()关闭所有表单。不清楚您的解决方案是什么。。。 "System.Invali

我有很多表单(隐藏),我需要用一个按钮将它们全部关闭,但由于某种原因,它开始抛出错误“集合已修改;枚举操作可能无法执行”

代码


这是一个错误,它告诉您正在从2个或更多线程访问一个集合,而没有锁保护

查看调用堆栈并查看正在访问的集合。

该错误表示在该线程中迭代时,ArrayList在其他线程中被更改。

这可能是因为OnFormClosing方法吗?我删除了它,因为我记得在我将其应用到其他表单之前,它运行良好。是的,Exit()关闭所有表单。不清楚您的解决方案是什么。。。
"System.InvalidOperationException: Collection was modified; enumeration operation may not execute.  
at System.Collections.ArrayList.ArrayListEnumeratorSimple.MoveNext()
   at System.Windows.Forms.Application.ExitInternal()
   at System.Windows.Forms.Application.Exit(CancelEventArgs e)
   at System.Windows.Forms.Application.Exit()
   ..."
    this->button1->Click += gcnew System::EventHandler(this, &Outro::button1_Click);
...
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
                 Application::Exit();
             }