c# 中 碰到 “在某个线程上创建的控件不能成为在另一个线程上创建的控件的父级。” 错误,如何解决?
情况如下:在C#winform中,我在主类form1的load方法中,调用子类Video的其中一个方法生成线程来载主窗体中生成一个视频窗口,视频窗口用的是panel,代码...
情况如下:在C# winform中,
我在主类form1的load方法中,调用子类Video 的其中一个方法生成线程来载主窗体中生成一个视频窗口,视频窗口用的是panel,
代码如下:
class form1
{
load()
{
Video video = new Video();
video.getdata(videolist, videosize, videocount, projecttime, videoplay);//这个用来传递参数
video.threadvideo();
}
}
子类如下:
class Video
{
public void threadvideo()//视频
{
ThreadStart Threadvideo1 = new ThreadStart(show);//创建视频线程
Thread Threadvideo = new Thread(Threadvideo1);
Threadvideo.Start();
}
public void show()
{
......................
Form1.pCurrentWin.Controls.Add(panel1);//就这个语句报错。 Form1.pCurrentWin指的是 FORM1
}
}
求高手解决,会报错 ”在某个线程上创建的控件不能成为在另一个线程上创建的控件的父级。“ 不要说用委托之类的,求详细解决代码方案。 展开
我在主类form1的load方法中,调用子类Video 的其中一个方法生成线程来载主窗体中生成一个视频窗口,视频窗口用的是panel,
代码如下:
class form1
{
load()
{
Video video = new Video();
video.getdata(videolist, videosize, videocount, projecttime, videoplay);//这个用来传递参数
video.threadvideo();
}
}
子类如下:
class Video
{
public void threadvideo()//视频
{
ThreadStart Threadvideo1 = new ThreadStart(show);//创建视频线程
Thread Threadvideo = new Thread(Threadvideo1);
Threadvideo.Start();
}
public void show()
{
......................
Form1.pCurrentWin.Controls.Add(panel1);//就这个语句报错。 Form1.pCurrentWin指的是 FORM1
}
}
求高手解决,会报错 ”在某个线程上创建的控件不能成为在另一个线程上创建的控件的父级。“ 不要说用委托之类的,求详细解决代码方案。 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询