Вы должны понимать, как в этом случае работает блокировка файлового ввода-вывода.
Позволяет вызвать процесс, создающий файловый процесс A
Процесс A сначала создаст файл и получит эксклюзивную блокировку файла для записи содержимого в него
Как только это произошловы получите событие создания файла, чтобы указать, что файл был создан.Но на данный момент процесс A все еще удерживает монопольную блокировку файла, поскольку еще не завершил запись содержимого.
Если у вас есть прямой доступ к процессу записи, вы можете сделать несколько сигналов вашей программе, чтобы указать, что файл готов и готов к использованию.Или вам придется выполнить некоторую обработку ошибок, чтобы повторить попытку, пока вы не сможете успешно прочитать файл.
Но имейте в виду, что ваше чтение получит общую блокировку чтения файла, не позволяющую любому другому процессу получить эксклюзивную блокировку, пока чтение не будет завершено.Поэтому, если процесс A попытается снова заблокировать файл исключительно, он потерпит неудачу и может произойти сбой, если он не обработал его правильно.
Добро пожаловать в мир параллелизма и расы!