invoke



Автор REAL DEAL задал вопрос в разделе Другие языки и технологии

C# чем отличается вызов эвента через Invoke и без? ! (объяснение с примером кода в пояснении к вопросу) и получил лучший ответ

Ответ от Scorpio[гуру]
Invoke выполняется в потоке GUI.
Scorpio
Просветленный
(24147)
Много GUI в разынх потоках это зло 🙂

Ответ от [новичек]
Если создать и запустить отдельный поток, параллельный основному потоку приложения (в котором обрабатываются события от GUI приложения) , то обратиться из него к GUI приложения (формам и контролам) - не получится. К ним в Winforms возможно обратиться только из основного потока. Invoke выполняет заданный код именно в основном потоке.
Отдельный поток создают для того, чтобы не загружать основной поток действиями, не связанными с GUI (например копирование или скачивание файла) , и GUI не зависал.
Дело в том, что события (клик мышью по окну, нажатие клавиши в текстбоксе и т. д. ) обрабатываются последовательно в цикле, и если сейчас в основном потоке скажем копируется файл, то пока не скопируется, окно не будет откликаться на мышь и клавиатуру.
Если же файл копировать в отдельном потоке, который будет выполняться в отдельном ядре процессора, то обработке сообщений в главном потоке не будет ничего мешать.
Ну и пример.
cyberforum.ru/windows-forms/thread1075236.html

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: C# чем отличается вызов эвента через Invoke и без? ! (объяснение с примером кода в пояснении к вопросу)
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*