Доступ к компонентам из другого потока C # - PullRequest
0 голосов
/ 06 июня 2011

У меня есть форма окна с кнопкой в ​​нем.У меня есть 2 темы, и я хочу изменить имя кнопки из другой темы.Я получаю ошибку, когда я делаю это.как я могу изменить имя кнопки?

PS Я знаю, что тот же вопрос уже опубликован, но решение там не может помочь мне.Я не могу использовать Dispatcher, может быть, это потому, что я использую .NET 2.0 (я должен ...).

Ответы [ 2 ]

1 голос
/ 06 июня 2011
delegate void MyDelegate(string x);

void ChangeName(string name)
{
   if (this.InvokeRequired)
   {
     this.Invoke(new MyDelegate(this.ChangeName), new object[]{name});
     return;
   }
   this.button.Text = name;
}

подробнее здесь Как обновить графический интерфейс из другого потока в C #?

0 голосов
/ 06 июня 2011

вам нужно посмотреть на:

InvokeRequired and 
Invoke

методы по фактическому контролю. InvokeRequired сообщит вам, нужно ли вам делать это через invoke (т.е. он вызывается из потока, который не является UIThread), и invoke выполнит действие.

не отличается от Dispatcher, за исключением того, что ответственность ложится на сам элемент управления, а не на какой-то другой класс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...