Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
На мой взгляд, разумнее не писать метку в начало файла, а создавать и удалять файл-метку. Мастер - перед записью создает файл-метку, и начинает запись. Когда все посчитано и записано - файл-метка удаляется.
Слейвы - перед чтением - проверяют существование файл-метки, и считывают данные только в случае его отсутствия.
На мой взгляд, разумнее не писать метку в начало файла, а создавать и удалять файл-метку. Мастер - перед записью создает файл-метку, и начинает запись. Когда все посчитано и записано - файл-метка удаляется.
Слейвы - перед чтением - проверяют существование файл-метки, и считывают данные только в случае его отсутствия.
И ещё: каждый слейв должен сигналить о том, что завершил чтение. А мастер прежде, чем разрешать чтение, должен глянуть метки слейвов - вдруг кто-то ещё не закончил чтение.
У меня этот процесс происходит раз в секунду по таймеру. И что будет с фрагментацией винта? И чем это метод лучше, обоснуйте плз. К тому же писать байт в открытый файл куда быстрее, чем удалять создавать новый.
У меня этот процесс происходит раз в секунду по таймеру. И что будет с фрагментацией винта? И чем это метод лучше, обоснуйте плз. К тому же писать байт в открытый файл куда быстрее, чем удалять создавать новый.
Создайте виртуальный диск с помощью ...
Смысл в том, чтобы избежать лишних обращений для слейвов. Но, скажем, файл-метку можно не удалять, а просто изменять его длину. То обнулять, до что-то записывать. Сама длина - тоже может о чем-то предупреждать слейвов.
Есть такая задача. На компе работают 10 терминалов, на каждом крутится один и тот же советник. Нет смысла всем 10 выполнять довольно тяжелые вычисления. Хочу сделать одного Master, остальные Slave's. Мастер делает расчеты и пишет инфу в общий файл, слейвы ее читают и далее отрабатывают "легкую" часть алгоритма.
И тут возникает проблема, а что, если мастер еще не все записал, а слейвы уже начали читать? В маркете нельзя использовать Win Api, так бы я мьютекс завел и проблема решена. Пока сделал так - Мастер перед записью данных взводит в самом начале файла флаг типа int, ждет какое-то время, пишет данные, потом флаг сбрасывает. Тоже криво и небезопасно, но лучше не придумал. Ну нет в MQL4/5 атомарных операций.
Кто чего посоветует/покритикует?
FILE_SHARE_WRITE совместный доступ по записи со стороны нескольких программ
а через видновские события подойдет метод ?
но нужно импортировать несколько функций из kernel32.dll
Если да то набросаю код.