Я работаю с двумя независимыми приложениями c/C++ в Windows, где один из них постоянно обновляет изображение на диске (с веб-камеры), а другой читает это изображение для обработки. Это работает отлично и dandy 99,99% времени, но время от времени приложение-читатель находится в середине чтения изображения, когда автор удаляет его, чтобы обновить его новым.файл блокировки, чтобы его нельзя было удалить
Очевидное решение для меня, похоже, заключается в том, что у читателя есть какой-то замок в файле, чтобы писатель мог видеть, что он не может его удалить и, таким образом, заблокировать его, пока он не сможет удалить и Обновить. Есть какой-либо способ сделать это? Или есть еще один простой шаблон дизайна, который я могу использовать, чтобы получить такое же постоянное обновление изображения между двумя программами?
Спасибо,
-Роберт
Вы должны указать целевую ОС, так как она делает * огромную * разницу. Однако я бы предложил сделать операцию атомом (подсказка: переименование и удаление часто являются атомарными для локальной файловой системы, а не как пара, но индивидуально). В зависимости от вашей ОС и различных настроек файлов они будут иметь другую семантику. – 2010-04-07 02:16:40
Моя целевая ОС - Windows. – JoeCool