使用Windows窗体进行线程化

时间:2009-09-01 06:57:12

标签: c# winforms multithreading

我在C#中编写了一个Windows窗体应用程序。当我运行一个单独的线程,其中包含一个切换我的表单上的面板的隐形的方法时,它第一次工作,但不是第二次。为什么以及如何解决?

3 个答案:

答案 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,在这种情况下您需要同步请求。如果不知道您正在使用哪种编程语言,很难告诉您如何做到这一点。