Как видно из названия, я пытаюсь одновременно читать и писать в файл. Я исследовал эту тему, но ответы, которые я нашел, не работают для меня из-за обстоятельств в моей программе. Я использую несколько FileSystemWatchers для отслеживания большого количества файлов, которые постоянно проходят через поток в моей сети. Когда файлы проходят через каждую часть моего потока, текстовый файл обновляется (один текстовый файл на одно место в потоке), который отмечает имя файла и время его создания в папке. Это непредсказуемо, когда файлы могут проходить, и когда они могут писать текстовые файлы трекера. Моя цель состоит в том, чтобы иметь возможность одновременно читать и писать в файл, если пользователь пытается прочитать из текстового файла, который записывается в одно и то же время. Как бы я это сделал?Использование TextWriter с StreamWriter и чтение/запись одновременно
//Write to File
private void WriteToFile(string info,string path,string tr)
{
if (!File.Exists([email protected]"\"[email protected]))
{
var myFile =
File.Create(path + @"\" + @tr);
myFile.Close();
TextWriter tw = new StreamWriter(path + @"\" + @tr, true);
tw.WriteLine(info,true);
tw.Close();
}
else if (File.Exists(path + @"\" + @tr))
{
TextWriter tw = new StreamWriter(path + @"\" + @tr, true);
tw.WriteLine(info);
tw.Close();
}
}
Можете ли вы добавить код, который отвечает за чтение файла, на ваш вопрос? Благодаря! – Snoopy
, если вы используете FileStream, вы можете заблокировать часть файла https://msdn.microsoft.com/en-us/library/system.io.filestream.lock или использовать опцию FileShare.None – Slai