Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > нужно ли делать проверку на InvokeRequired


Автор: IGV 19.10.2009, 16:35
Очень часто вижу примеры, в которых данные на форме обновляются из другого потока и в них используется проверка на InvokeRequired.
Зачем это нужно? Сильно ли теряется производительность если вызвать метод обновления данных в этом же потоке через Invoke?

Автор: Voyager 20.10.2009, 10:08
Если есть работа разных потоков, влияющая на GUI формы, то нужно, иначе будет ошибка обращения из другого потока.

Автор: IGV 20.10.2009, 21:33
перефразирую вопрос.

Предположим есть метод формы, который обновляет данные на форме. Он может вызываться как в том же потоке, что и создана форма, так и из другого потока.
Могу ли я в этом методе сразу написать Invoke? и насколько это правильно?

Автор: Voyager 21.10.2009, 15:02
Написать можете, но лучше придерживаться правил хорошего тона.smile
В конкретно  данном случае правильней будет поставить проверку на InvokeRequired (есть свой поток, есть другой, выполняться с учетом InvokeRequired, какая-никакая польза для производительности).

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)