¿Es posible leer-bloquear un archivo?

Estoy desarrollando una aplicación que verifica los cambios realizados en un archivo por un programa separado (no escrito por mí).

Si se detecta un cambio, abre el archivo, lee la última línea y luego cierra el archivo.

Estoy usando el siguiente código para asegurarme de que mi programa no intente bloquear el archivo, sino que solo lo abre en modo de lectura:

FileStream fs =
    new FileStream(
        _scannerFilePath,
        FileMode.Open,
        FileAccess.Read,
        FileShare.ReadWrite);
StreamReader sr = new StreamReader(fs);
var str = sr.ReadToEnd();
sr.Close();
fs.Close();

Desafortunadamente, a pesar de esto, sigo recibiendo el siguiente error cada vez que mi programa intenta leer el archivo:

System.IO.IOException was unhandled
    Message="The process cannot access the file 'D:\\LSDATA\\IdText.txt' because it is being used by another process."
    Source="mscorlib"
    StackTrace:
        at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
        at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)
        at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
        at LiquorSafe.Verification.Main.CheckLastScannedUser(String changedFileName)
        at LiquorSafe.Verification.Main.OnChanged(Object sender, FileSystemEventArgs e)
        at System.IO.FileSystemWatcher.OnChanged(FileSystemEventArgs e)
        at System.IO.FileSystemWatcher.NotifyFileSystemEventArgs(Int32 action, String name)
        at System.IO.FileSystemWatcher.CompletionStatusChanged(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* overlappedPointer)
        at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP)
    InnerException: 

¿Hay alguna razón posible para esto?

¿Podría ser que el otro programa es de alguna manerabloqueo de lectura el archivo, y por lo tanto me impide incluso leerlo?

Respuestas a la pregunta(1)

Su respuesta a la pregunta