2009-09-01 76 views
-2

我已经用C#编写了Windows窗体应用程序。当我运行一个单独的线程,该线程包含切换窗体上面板隐形的方法时,它会在第一次运行,但不是第二次运行。为什么以及如何修复它?使用Windows窗体线程化

+0

更多信息请。 – 2009-09-01 06:58:41

+0

你用什么语言编写你的应用程序?你有一些代码发布? – 2009-09-01 06:58:41

+3

巴别塔鱼是一种毒药。 – 2009-09-01 07:03:14

回答

0

我的猜测是他从后台线程调用的UI代码是。 ;)

0

你的问题有点含糊,但它听起来像你想从另一个线程控制UI,在这种情况下,你需要同步请求。不知道您使用的是什么编程语言,很难告诉您如何去做。

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

恩..好的。对不起,我们忍不住... – RCIX 2009-09-01 08:17:02