Новая версия платформы MetaTrader 5 build 5100: Переход на Git и хаб разработчиков MQL5 Algo Forge, темная тема и улучшения интерфейса - страница 20

 
Vladislav Boyko #:

У меня вопрос. Для потока, который тормознут Sleep(), события генерируются? Ответа у меня нет, но вот это выглядит так, как будто события перестают генерироваться для потока, который спит.

У меня там скачивание и парсинг текста. Можно заменить на что-то подобое или любое другое долгое вычисление. Со Sleep() воспроизвелось, потому и показал такую версию.
 
Forester #:
У меня там скачивание и парсинг текста.

Отдать это сервису не?

 

Было бы идеально иметь две функции EventSetMillisecondTimer()

Одну через заданный промежуток времени, вторую через заданный промежуток после выполнения кода.

Правда, что делать с очередью, при первом варианте функции, если вычисления займут времени больше чем таймер, я не знаю.

 

Эти три комита точно должны продолжать существование? Они ведь мусорные, если я правильно понимаю. Могу ошибаться, нужно будет затестить squash commit на другой платформе.

Посмотрите, пожалуйста. Репозиторий https://forge.mql5.io/boyvlad/Squash_commit_test

 
Aleksandr Slavskii #:
Правда, что делать с очередью, при первом варианте функции, если вычисления займут времени больше чем таймер, я не знаю.
Думаю, что в этом кроется причина, по которой разработчики терминала реализовали второй вариант.
 
Forester #:
Мне надо чтобы при указании EventSetMillisecondTimer(100);, пауза была 100 мс. Но у меня нет доступа к коду терминала. Поэтому прошу разработчиков. Думаю у них это просто замена += на =.
Это реализуется в 3 строки кода. А вы тут сопли разводите.
 
Sergey Gridnev #:
Это реализуется в 3 строки кода. А вы тут сопли разводите.

покажите)

Если вы про вариант с
void OnInit(){EventSetMillisecondTimer(100);}
то я его пробовал. Через какое то время паузы становятся равны 0. Видимо, если минуты 3 пропускать события, пока работает код, (1800 шт по 10 в сек), то тоже что-то сбоит.
 
Forester #:

покажите)

Если вы про вариант с то я его пробовал. Через какое то время паузы становятся равны 0. Видимо, если минуты 3 пропускать события, пока работает код, (1800 шт по 10 в сек), то тоже что-то сбоит.


Посмотрел ваше первое сообщение и вынужден признать: я был невнимателен. Там действительно какой-то баг в поведении, это видно по времени вывода сообщений в журнал.


Бета-версия платформы MetaTrader 5 build 5050: Переход на Git и хаб разработчиков MQL5 Algo Forge, темная тема и улучшения интерфейса - Создайте проект через визард.
Бета-версия платформы MetaTrader 5 build 5050: Переход на Git и хаб разработчиков MQL5 Algo Forge, темная тема и улучшения интерфейса - Создайте проект через визард.
  • 2025.06.03
  • User_mt5
  • www.mql5.com
то функция работает очень быстро и таймер всегда срабатывает через 100мс. то следущий сработает через паузу 5 сек 100мс - нужно именно так. Работа через паузу таймером нужна для работы с графической панелью
 
Print(TerminalInfoString(TERMINAL_COLORTHEME_NAME)); // System

Что это за название?

 
fxsaber #:

Что это за название?

Вот названия цветовых тем. Обычно их три: светлая, тёмная и «следовать системным настройкам». При выборе системной темы, если в системе установлена тёмная тема, программа также будет тёмной, а если светлая — программа станет светлой.