Я разрабатываю многопоточное приложение. У меня есть где-то в моем коде:
File.Delete(sidetapedata);
File.Move(sidetapedata2, sidetapedata); //sidetapedata and sidetapedata2 are two file paths that correspond to sidetapedata.txt and sidetaptdata2.txt in some directory.
Вторая строка иногда работает нормально, а иногда - IOException
:
Cannot create a file when that file already exists.
Есть еще один поток, который обращается к файлу sidetapedata
, но он только читает этот файл, без операций записи. Я использую замки для защиты условий гонки. Не знаю, почему это происходит.
ОБНОВЛЕНИЕ : даже когда отладчик Visual C # показывает мне это исключение, заглядывая в каталог, содержащий эти файлы, я вижу, что нет файла sidetapedata.txt
, но есть sidetapedata2.txt
файл!
ОБНОВЛЕНИЕ2 : Кроме того, это происходит только тогда, когда sidetapedata.txt
и sidetapedata2.txt
оба не заполнены