我正在尝试在后台执行任务,并且正在使用由表单设计器创建的面板,但是不允许我的背景工作人员访问它们。
我想使用填充有面板的数组。但我不断收到错误消息:
System.InvalidOperationException
当我尝试将它们添加到我的cliext :: vector中时。其中说即时消息不允许使用面板,因为它们是在其他线程中创建的。
我试图捕获异常,并试图使数组为静态,但这也不起作用。还有一个使用Invoker的选项,但我无法运行它。
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
backgroundWorker1->RunWorkerAsync(1);
}
private: System::Void backgroundWorker1_DoWork(System::Object^ sender, System::ComponentModel::DoWorkEventArgs^ e) {
cliext::vector<Panel^> allePanel;
allePanel.push_back(panel1);//1
allePanel.push_back(panel4);//2
allePanel.push_back(panel3);//3
}
我基本上想无限循环地更改背景中面板的颜色。