我在C#中编写了一个Windows窗体应用程序。当我运行一个单独的线程,其中包含一个切换我的表单上的面板的隐形的方法时,它第一次工作,但不是第二次。为什么以及如何解决?
答案 0 :(得分:3)
谢谢,按照代码解决了我的问题:
Panel tmp = null;
switch (d.Person)
{
case 1: tmp = backPic1;
break;
case 2: tmp = backPic2;
break;
case 3: tmp = backPic3;
break;
}
if (InvokeRequired)
{
tmp.Invoke(new MethodInvoker(delegate() { tmp.Visible = true; }));
}
else
{
tmp.Visible = true;
}
答案 1 :(得分:0)
我的猜测是从后台线程调用的UI代码是。 ;)
答案 2 :(得分:0)
您的问题有点模糊,但听起来您想要从不同的线程控制UI,在这种情况下您需要同步请求。如果不知道您正在使用哪种编程语言,很难告诉您如何做到这一点。