Я написал приложение Windows Forms на C#. Когда я запускаю отдельный поток, содержащий метод, который переключает невидимость панели в моей форме, он работает в первый раз, но не второй. Почему и как я могу это исправить?Threading with Windows Forms
-2
A
ответ
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
Более подробной информации, пожалуйста. –
На каком языке вы написали свое приложение? У вас есть код для публикации? –
Babel Fish - препарат helluva. –