2009-09-01 75 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