Не удается прочитать все строки в файле, которые используются другим процессом

Я пытаюсь прочитать все строки файла журнала, которые используются какой-либо программой.

Когда я пытался сделать это, я получаю исключение:

System.IO.IOException was unhandled  : file used by another process

Поэтому я искал в Интернете и нашел ряд решений:
C # исключение. Файл используется другим процессом
Чтение файла журнала, используемого другим процессом
Какой наименее инвазивный способ чтения заблокированного файла в C # (возможно, в небезопасном режиме)?
C # Процесс не может получить доступ к файлу '' ', потому что он используется другим процессом
Файл используется другим процессом
http://coding.infoconex.com/post/2009/04/21/How-do-I-open-a-file-that-is-in-use-in-C

Общие решения должны использоватьusing обернутьFileStream и добавитьFileShare.ReadWrite.

Я попробовал эти решения, но я все еще получаю исключение, что файл используется другим процессом.

В моем коде ниже я открываю файлD:\process.log сделать файл использованным (для тестирования), а затем пытается открыть файл.
Исключение находится в строке:

 using (FileStream fileStream = File.Open(i_FileNameAndPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))

КОД:

 private void openToolStripMenuItem_Click(object sender, EventArgs e)
    {
        OpenFileDialog openFileDialog = new OpenFileDialog();

        DialogResult dialogResult = openFileDialog.ShowDialog();
        if (dialogResult == DialogResult.OK)
        {
          listView.Items.Clear();
          File.Open(@"D:\process.log", FileMode.Open);  //make the file being used
          String fileNameAndPath = openFileDialog.FileName;
          String[] fileContent = readAllLines(fileNameAndPath);
        }
}

private String[] readAllLines(String i_FileNameAndPath)
{
    String[] o_Lines = null;
    int i = 0;
    using (FileStream fileStream = File.Open(i_FileNameAndPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
    {
        using (StreamReader streamReader = new StreamReader(fileStream))
        {
            while (streamReader.Peek() > -1)
            {
                String line = streamReader.ReadLine();
                //o_Lines[i] = line;
                i++;
            }
        }
    }

    return o_Lines;
}

Ответы на вопрос(1)

Ваш ответ на вопрос