2009-09-01 2 views
-2

Я написал приложение Windows Forms на C#. Когда я запускаю отдельный поток, содержащий метод, который переключает невидимость панели в моей форме, он работает в первый раз, но не второй. Почему и как я могу это исправить?Threading with Windows Forms

+0

Более подробной информации, пожалуйста. –

+0

На каком языке вы написали свое приложение? У вас есть код для публикации? –

+3

Babel Fish - препарат helluva. –

ответ

0

Мое предположение, что код UI, вызываемый из фонового потока, есть. ;)

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

um .. ok. Извините, мы не могли помочь ... – RCIX