![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Тестер от терминала я отличаю.
Возможно, что-то изменилось в работе с файлами. Но я бы не советовал решения, хорошо их не протестировав.
У меня данное решение работает более года. Правда, так как оно работает как защита от невнимательности - срабатывало всего пару раз. Выше привел рабочий пример для теста.
срабатывало всего пару раз
"пару раз" - это вообще ни о чём не говорит.
У нас в офисе более 100 сотрудников. Иногда встречаются ситуации, когда файл .xls "занят" пользователем, хотя пользователь его давно закрыл.
Неоднократно нарывался на залоченый файл после вылета советника. До перезагрузки терминала открыть его не получалось.
более того, бывало локи оставались и после вылета всего терминала.
В каких-то билдах исправили, поменяли способ блокировок или ещё чего, но как говорится "осадочек остался" :-)
Той-же болезнью (персистентные локи) болел SQLite , давненько его не трогал за сейчас не скажу, но было такое что после краша локи сбрасывались только перезагрузкой
У меня данное решение работает более года. Правда, так как оно работает как защита от невнимательности - срабатывало всего пару раз. Выше привел рабочий пример для теста.
Пишу в файл не закрывая его, открываю в ОнИнит, закрываю в ОнДеинит. (плохая привычка) 4ка, Вин 7ка. В не нагруженных состояниях все работает, а вот при выходе из нагруженных состояний и обращений к открытому файлу блокнотом часто получал залоченный файл и после штатного закрытия терминала, и после аварийного через диспетчер задач. Лок снимался перезагрузкой винды.
В любом случае это решение не даст запустить копию, а там уже можно будет и самому разобраться залочен он штатно или из за бага терминала а не считать милисекунды в глобалках терминала.
Ну да, ошибочный лок при не запущенном советнике только может быть. Но это отслеживаемо. В другую сторону, при запущенном советнике отсутствие лока вероятность гораздо меньше.