Есть ли способ обойти или удалить блокировку файла, удерживаемую другим потоком, не убивая поток?
Я использую стороннюю библиотеку в своем приложении, которая выполняет операции только для чтения в файле. Мне нужно, чтобы второй поток читал файл в то же время, чтобы извлечь лишние данные, которые сторонняя библиотека не раскрывает. К сожалению, сторонняя библиотека открыла файл, используя блокировку чтения/записи, и, следовательно, я получаю обычный "Процесс не может получить доступ к файлу... потому что он используется другим процессом".
Я бы хотел избежать предварительной загрузки всего файла с помощью моего потока, потому что файл большой и может привести к нежелательным задержкам при загрузке этого файла и избыточному использованию памяти. Копирование файла нецелесообразно из-за размера файлов. Во время нормальной работы два потока, попадающих в один и тот же файл, не будут вызывать каких-либо серьезных проблем с конкуренцией/производительностью. Мне не нужна идеальная синхронизация времени между двумя потоками, но они должны считывать одни и те же данные в течение половины секунды друг от друга.
Я не могу изменить стороннюю библиотеку.
Есть ли проблемы в этой проблеме?