В C #, если 2 процесса читают и записывают в один и тот же файл, каков наилучший способ избежать исключений блокировки процессов?
Со следующим кодом чтения файла:
using (FileStream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.None))
{
using (TextReader tr = new StreamReader(fileStream))
{
string fileContents = tr.ReadToEnd();
}
}
И следующий код записи файла:
using (TextWriter tw = new StreamWriter(fileName))
{
tw.Write(fileContents);
tw.Close();
}
Следующие детали исключения видны:
Процесс не может получить доступ к файлу «c: \ temp \ myfile.txt», поскольку он используется другим процессом.
Каков наилучший способ избежать этого? Читатель должен повторить после получения исключения или есть какой-то лучший способ?
Обратите внимание, что процесс чтения используетFileSystemWatcher знать, когда файл изменился.
Также обратите внимание, что в этом случае яне ищу альтернативные способы разделения строк между двумя процессами.