-2
저는 ZedGraph 만 포함하는 사용자 정의 컨트롤이 있습니다.크로스 스레드 작업이 유효하지 않습니다.
additself라는이 사용자 컨트롤에 대한 메서드를 작성하려고하는데,이 폼은 기본 폼의 탭 페이지에 추가됩니다. 이 크로스 스레드 작업이기 때문에
TabPage newpage = new TabPage();
newpage.Controls.Add(this.zedGraphControl1);
(form1.Controls["tableLayoutPanel1"].Controls["tabControl1"] as TabControl).TabPages.Add(newpage);
,이 오류를하고 내가 어떤 이유로
TabPage newpage = new TabPage();
newpage.Controls.Add(this.zedGraphControl1);
form1.Invoke((MethodInvoker)delegate
{
(form1.Controls["tableLayoutPanel1"].Controls["tabControl1"] as TabControl).TabPages.Add(newpage);
});
를 추가하여 해결됩니다, 그것은 여전히 스레드에서 액세스 한 zedgraph을 말하는 오류 메시지 제공 에 만들어집니다.
나는이 문제를 어떻게 해결합니까?
새 탭 페이지를 추가 할 때 배경 스레드에서 실제로 많은 시간이 소요됩니까? 어쨌든, 이것은 탭 페이지가 스레드에 의해 소유되도록하지 않을 것이며, 탭 컨트롤은 포 그라운드 스레드에 의해 소유 될 것입니까? –
아마도 잘못된 스레드에서 TabPage를 작성했기 때문에 위임자 안에 TabPage를 넣었을 것입니다. – Silvermind