Я хочу использовать 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
Может ли кто-нибудь мне помочь?
Спасибо:)