Со следующим кодом чтения файла:
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, чтобы знать, когда файл был изменен.
Также обратите внимание, что в этом случае я не ищет альтернативные способы совместного использования строк между двумя процессами.