Автор Тема: В каких случаях лучше применять MessageLoop, а в каких OnEvent ?  (Прочитано 664 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн kyi [?]

  • Новичок
  • *
  • Сообщений: 43
  • Репутация: 0
    • Награды
  • Версия AutoIt: 3.3.14.0
Добрый день!
Перечитал все что смог найти, но понял не многое. Объясните, для чего есть два режима обработки событий MessageLoop и OnEvent?
В каких случаях, при каких условиях лучше применять тот или иной режим?
В AutoIT по умолчанию используется MessageLoop.

Русское сообщество AutoIt


Онлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2694
  • Репутация: 457
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
русская справка
там подробно описано
ну и в оригинальной с переводчиком можно прочитать
Были времена, когда солнце было ярче, трава зеленее, а водка сорокоградуснее

Оффлайн kyi [?]

  • Новичок
  • *
  • Сообщений: 43

  • Автор темы
  • Репутация: 0
    • Награды
  • Версия AutoIt: 3.3.14.0
Читал я эту справку и как раз после нее и обратился на форум.
В справке написано как это работает, а потом говорят, что метод выбирайте сами. Как я выберу сам если даже не дали примеров.
Хотя бы описали, что MessageLoop лучше применять в таких-то и таких-то ситуациях потому , что....
а OnEvent в других, потому что....
Но нет, не написали.
Какой мне смысл знать что OnEvent это обработка по событию, а MessageLoop это обработка событий в цикле. Я три недели читаю разные справки, форум и вопросов все больше и больше, а ответов меньше и меньше.
Вот вы когда применяете MessageLoop, а когда OnEvent и почему?

Оффлайн Alofa [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1418
  • Репутация: 207
  • Пол: Мужской
  • Windows 7 /10 [x64]
    • Награды
  • Версия AutoIt: 3.3.12.0
kyi
Да не парьтесь вы так. Расслабьтесь, вздохните глубоко, сделайте перерыв.
Используйте "MessageLoop" и радуйтесь жизни, а вот когда вам понадобиться другой режим вы поймете, обязательно поймете с опытом.
Запомните одно: Работающий скрипт это всегда движение, а где оно будет происходить в функции или цикле это уже решать вам.

Сравните работу этих двух однотипных примеров:
(нажмите для показа/скрытия)

(нажмите для показа/скрытия)


Русское сообщество AutoIt

Re: В каких случаях лучше применять MessageLoop, а в каких OnEvent ?
« Ответ #3 Отправлен: Март 12, 2018, 22:46:57 »

Онлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2694
  • Репутация: 457
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
OffTopic  я так подозреваю, что следующим вопросом будет
"Что лучше использовать: Switch или Select"?


Добавлено: Март 13, 2018, 08:18:05
kyi  [?]
Цитировать
В справке написано как это работает, а потом говорят, что метод выбирайте сами
я редко пользуюсь режимом EventMod. Но его можно включить по ходу работы скрипта, и тогда можно отключить некоторые элементы, а другим назначить иные функции. А потом вернуть все обратно.
Alofa точно сказал, что с опытом появится и понимание где и что лучше применять. Во многих случаях MsgLoop достаточно
Пример комбинации режимов
(нажмите для показа/скрытия)
« Последнее редактирование: Март 13, 2018, 08:18:05 от joiner, Причина: Объединение сообщений »

Оффлайн kyi [?]

  • Новичок
  • *
  • Сообщений: 43

  • Автор темы
  • Репутация: 0
    • Награды
  • Версия AutoIt: 3.3.14.0
Сравните работу этих двух однотипных примеров:
Сравнил. Как по мне, то OnEvent вроде нагляднее (правда пока я мало что понимаю)
Хорошо, тогда еще один глупый вопрос
Есть ли заметная разница в скорости работы между OnEvent и MessageLoop?
Просто у меня логика такая, т.к. MessageLoop это непрерывный цикл, то при работе в этом режиме программа постоянно задействует ресурсы железа. В режиме OnEvent программа стоит и ждет. Поэтому, как мне кажется, MessageLoop более требователен к ресурсам или я не прав?

Русское сообщество AutoIt

Re: В каких случаях лучше применять MessageLoop, а в каких OnEvent ?
« Ответ #5 Отправлен: Март 13, 2018, 14:20:53 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
10 Ответов
6073 Просмотров
Последний ответ Ноябрь 12, 2011, 21:31:24
от AZJIO
5 Ответов
5440 Просмотров
Последний ответ Август 16, 2010, 20:53:06
от XpycT
2 Ответов
2514 Просмотров
Последний ответ Апрель 02, 2011, 22:24:21
от tigerby
3 Ответов
2924 Просмотров
Последний ответ Сентябрь 18, 2011, 15:25:23
от CreatoR
5 Ответов
3812 Просмотров
Последний ответ Апрель 14, 2016, 22:25:29
от mmsgeorge
5 Ответов
3112 Просмотров
Последний ответ Февраль 06, 2012, 21:03:05
от DarWiM
5 Ответов
3407 Просмотров
Последний ответ Февраль 09, 2012, 19:25:23
от madmasles
6 Ответов
4079 Просмотров
Последний ответ Февраль 27, 2012, 23:49:31
от Robocop
0 Ответов
1034 Просмотров
Последний ответ Ноябрь 14, 2014, 11:19:39
от madmasles
41 Ответов
6732 Просмотров
Последний ответ Сентябрь 06, 2017, 12:18:03
от VadimKHL