Можно ли поставить ограничение на количество одновременно работающих функций ?

 

Добрый день.

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

Уже спасибо. 

 
Justinas Shimkus:

Добрый день.

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

Уже спасибо. 

Возможно нужно переписать функцию, или изменить её логику. Если возможности нет, тогда можно сделать контроль через глобальную переменную терминала, если там начала работать, то писать в глоб.переменную "0", когда отработала - писать "1" 
 
Точно ) Только в моем случае нужен внешний файл, а не глобальная переменная и в нем хранить положение флага. За идею спасибо.
 
Justinas Shimkus:
Точно ) Только в моем случае нужен внешний файл, а не глобальная переменная и в нем хранить положение флага. За идею спасибо.

Ну она у вас где-то вызывается, значит можно что-то типа

if(GlobalVariableGet("flag") == 1 && условие выполнения) {
  GlobalVariableSet("flag", 0); // пишем что занято
  // что-то делаем - вызываем функцию с внешнего файла
  // ...
  // что-то сделали
  GlobalVariableSet("flag", 1); // пишем что свободно
 }
 
Да, так даже проще, спасибо большое.