Зависает Терминал при обработке данных индикатором!

 

Всем доброго!

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

Есть цикл While(true),  в нем обработка данных, при определенных условиях происходит выход из цикла. В результате иногда винснет терминал. Какие API функции надо использовать теле цикла, чтобы терминал продолжал функционировать?

 

Заранее спасибо! 

 

проверять принудительную остановку

while (true && !IsStopped())


 

 
Farkhat Guzairov:

Всем доброго!

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

Есть цикл While(true),  в нем обработка данных, при определенных условиях происходит выход из цикла. В результате иногда винснет терминал. Какие API функции надо использовать теле цикла, чтобы терминал продолжал функционировать?

 

Заранее спасибо! 

А при нестандартных или не предусмотенных не происходит выход ?
 
Vladimir Zubov:
А при нестандартных или не предусмотенных не происходит выход ?
Выход происходит, но как я писал бывают фризы(разной длительностью) и понятно из-за чего(мой скрипт). 
 
Taras Slobodyanik:

проверять принудительную остановку

while (true && !IsStopped())


 

Ну конечно же это все учтено, но проблема в том, что IsStopped() не убирает фризы
 

Наверное должно быть что-то такое(Delphi):

repeat
    if PeekMessage(Msg,0,0,0,PM_NOREMOVE) then begin
      GetMessage(Msg,0,0,0);
      Writeln(IntToStr(Msg.message)); // тут будет реальная обработка сообщений
    end;
    // Тут будет полезный код
  until False;

Но подобная конструкция вовсе прибивает терминал.
 

 
Farkhat Guzairov:

Всем доброго!

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

Есть цикл While(true),  в нем обработка данных, при определенных условиях происходит выход из цикла. В результате иногда винснет терминал. Какие API функции надо использовать теле цикла, чтобы терминал продолжал функционировать?

 

Заранее спасибо! 

У меня работал индикатор более полугода, пока MQ не обновили билд до 1031 

Сейчас терминал зависает довольно часто, может работать 2-5 минут, а потом зависнуть на 1-3 минуты, может сам придти в чувства, но это не так часто, чаще всего нужна принудительная перезагрузка. Установлен всего один индикатор, и открыто 24 графика. Код оптимизировать более некуда.

В 1031 что-то уж сильно ускорили, что перестал нормально работать, раньше таких проблем небыло. Возможно и у вас что-то с этой песни.

 
Vitaly Muzichenko:

У меня работал индикатор более полугода, пока MQ не обновили билд до 1031 

Сейчас терминал зависает довольно часто, может работать 2-5 минут, а потом зависнуть на 1-3 минуты, может сам придти в чувства, но это не так часто, чаще всего нужна принудительная перезагрузка. Установлен всего один индикатор, и открыто 24 графика. Код оптимизировать более некуда.

В 1031 что-то уж сильно ускорили, что перестал нормально работать, раньше таких проблем небыло. Возможно и у вас что-то с этой песни.

Печально это слышать и билд у меня такой же, но зависание явно происходят из-за советника, так как я его меняю и компилирую, то в этот момент окно терминала напрочь зависает и если я выполняю те же процедуры но с индикатором(на каждом окне их минимум по 3 шт., а окно 6), то такого эффекта "зависания" нету, а самое смешное, что в советнике я как раз вызываю этот индикатор.

Вот и хочу, добавить в циклы индикатора API для отправки сообщений, чтобы избавиться от этого эффекта. 

 
Farkhat Guzairov:

Печально это слышать и билд у меня такой же, но зависание явно происходят из-за советника, так как я его меняю и компилирую, то в этот момент окно терминала напрочь зависает и если я выполняю те же процедуры но с индикатором(на каждом окне их минимум по 3 шт., а окно 6), то такого эффекта "зависания" нету, а самое смешное, что в советнике я как раз вызываю этот индикатор.

Вот и хочу, добавить в циклы индикатора API для отправки сообщений, чтобы избавиться от этого эффекта. 

У меня шаблон советника написан очень давно, и там нет никаких вызовов индикаторов, на протяжении всего времени работало замечательно.

С обновлением билда на 1031 появилась аналогичная проблема: если советник установлен на графике и его скомпилировать, то терминал зависает напрочь, нужно только компилировать чтоб советника на графике небыло. Тоже самое и с графическим индикатором.

Это косяк MQ, но признать это не хотят, всё просят показать в видео, а что показывать то, как зависает терминал и при этом ничего нет в логах, так это и без видео понятно? В общем виноват именно кривой билд 1031 ... до ускорялись