использование FILE_FLAG_NO_BUFFERING с FileStream выдает ошибку "параметр неверный? - PullRequest
0 голосов
/ 10 ноября 2019

Я хочу использовать FILE_FLAG_NO_BUFFERING с FileStream, я искал об этом и нашел этот вопрос [Здесь]: Чтение файла с помощью FileStream и FILE_FLAG_NO_BUFFERING

, но я не могу понять некоторые слова, такие как (размер сектора), независимо от того, я задал вопрос ранее []: FileStream.ReadAsync блокирует пользовательский интерфейс, если useAsync имеет значение true, но не блокирует пользовательский интерфейс, если он имеет значение

, и я написал код, которыйв примере в ответе на мой вопрос

это код:

private async void button1_Click(object sender, EventArgs e)
    {
        FileOptions options = checkBox1.Checked ?
        FileOptions.Asynchronous | (checkBox2.Checked ? (FileOptions)0x20000000 : FileOptions.None) :
        FileOptions.None;
        string _tempFileName = @"C:\Users\iP\Documents\Visual Studio 2015\Projects\ConsoleApplication32\ConsoleApplication32\bin\Debug\hello.txt";
        int x = 32 * 1024; // the buffer size 
        using (Stream stream = new FileStream(_tempFileName, FileMode.Open, FileAccess.Read, FileShare.Read, 4096, FileOptions.Asynchronous|(FileOptions)0x20000000))
        {
            await _ReadAsync(stream, x ); // passing it to function
        }



        textBox1.Text = ";olkncdd";
    }
    private async Task _ReadAsync(Stream stream, int bufferSize)
    {
        byte[] data = new byte[bufferSize];



        while (await stream.ReadAsync(data, 0, data.Length) > 0)
        {
            // empty loop
            textBox1.AppendText("it is reading");
        }
        // when While loop finish i get error " the parametere is incorrect " 
    }

я получаю ошибку, когда во время завершения цикла (эта ошибка с любым размером буфера) ошибка

Исключение типа 'System.IO.IOException' возникло в mscorlib.dll, но не было обработано в коде пользователя

Дополнительная информация: Неверный параметр.

я получаю эту ошибку, только когда использую только FILE_FLAG_NO_BUFFERING

Может ли кто-нибудь мне помочь?

Спасибо:)

...