En C #, si 2 procesos leen y escriben en el mismo archivo, ¿cuál es la mejor manera de evitar excepciones de bloqueo de procesos?

Con el siguiente código de lectura de archivo:

using (FileStream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.None))
{
    using (TextReader tr = new StreamReader(fileStream))
    {
        string fileContents = tr.ReadToEnd();
    }
}

Y el siguiente código de escritura de archivo:

using (TextWriter tw = new StreamWriter(fileName))
{
    tw.Write(fileContents);
    tw.Close();
}

Se ven los siguientes detalles de excepción:

El proceso no puede acceder al archivo 'c: \ temp \ myfile.txt' porque está siendo utilizado por otro proceso.

¿Cuál es la mejor manera de evitar esto? ¿Es necesario que el lector vuelva a intentarlo una vez que reciba la excepción o hay alguna forma mejor?

Tenga en cuenta que el proceso del lector está utilizando unFileSystemWatcher saber cuándo ha cambiado el archivo.

También tenga en cuenta que, en este caso, soyno buscando formas alternativas de compartir cadenas entre los 2 procesos.

Respuestas a la pregunta(8)

Su respuesta a la pregunta