Я разрабатываю многопоточное приложение. В моем коде есть что-то:
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
файл, но он только читает этот файл, без операций записи. Я я использую блокировки для защиты условий гонки. Не знаю, почему это происходит.
ОБНОВЛЕНИЕ : даже когда визуальный отладчик C # показывает мне это исключение, глядя в каталог, содержащий эти файлы, я вижу, что файла sidetapedata.txt
нет, но есть sidetapedata2 .txt
файл!
ОБНОВЛЕНИЕ 2 : такое поведение происходит только тогда, когда sidetapedata.txt
и sidetapedata2.txt
оба пустые