Модераторы: gambit, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> нужно ли делать проверку на InvokeRequired 
V
    Опции темы
IGV
Дата 19.10.2009, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 1.4.2008

Репутация: нет
Всего: 2



Очень часто вижу примеры, в которых данные на форме обновляются из другого потока и в них используется проверка на InvokeRequired.
Зачем это нужно? Сильно ли теряется производительность если вызвать метод обновления данных в этом же потоке через Invoke?
PM MAIL ICQ   Вверх
Voyager
Дата 20.10.2009, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 532
Регистрация: 8.2.2005

Репутация: 3
Всего: 18



Если есть работа разных потоков, влияющая на GUI формы, то нужно, иначе будет ошибка обращения из другого потока.
PM   Вверх
IGV
Дата 20.10.2009, 21:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 145
Регистрация: 1.4.2008

Репутация: нет
Всего: 2



перефразирую вопрос.

Предположим есть метод формы, который обновляет данные на форме. Он может вызываться как в том же потоке, что и создана форма, так и из другого потока.
Могу ли я в этом методе сразу написать Invoke? и насколько это правильно?
PM MAIL ICQ   Вверх
Voyager
Дата 21.10.2009, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 532
Регистрация: 8.2.2005

Репутация: 3
Всего: 18



Написать можете, но лучше придерживаться правил хорошего тона.smile
В конкретно  данном случае правильней будет поставить проверку на InvokeRequired (есть свой поток, есть другой, выполняться с учетом InvokeRequired, какая-никакая польза для производительности).
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.0396 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.