требуется массовое обращение - PullRequest
0 голосов
/ 11 ноября 2010

Я разработал класс управления пользователями, который я собираюсь использовать для кнопок. После объявления их в моем классе form1 я использую что-то вроде этого: inout_button1.click += new EventHandler(but1);, чтобы добавить обработчик для клика. пока все хорошо из другого потока я хочу вызвать метод в моем классе form1, который изменяет состояние кнопки (Enabled = true / false, встроенный в класс управления пользователем), но программа сообщает мне, что я не могу получить к ней доступ другая нить. Мой вопрос: могу ли я сделать вызов в своем классе кнопок, а не для каждой кнопки? У меня есть примерно 14 кнопок, поэтому довольно сложно создать делегата для всех из них, один за другим.

Ответы [ 2 ]

1 голос
/ 11 ноября 2010

Вы не можете изменять свои элементы управления пользовательским интерфейсом из потоков, отличных от потока пользовательского интерфейса, по этой причине существует обходной путь.Пожалуйста, посмотрите на эту статью MSDN

0 голосов
/ 11 ноября 2010

Как обработчик событий связан с состоянием вашей кнопки?

Но да, если вы создаете метод SetState в своей кнопке, вы можете использовать Invoke () один раз в этом методечтобы сделать этот метод безопасным для вызова из другого потока.

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