Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Асинхронная работа с файлами


Автор: Idsa 3.2.2007, 17:40
Не могу понять значение флага useAsync, который задается в конструкторе, например, FileStream. MSDN гласит, что флаг определяет синхронность/асинхронность вывода. Однако как с ним, так и без него я могу использовать как синхронные, так и асинхронные команды. Отсюда вопрос: что именно делает этот флаг?

Автор: Djuffin 4.2.2007, 03:08
Этот флаг эквивалентен флагу FILE_FLAG_OVERLAPPED функции CreateFile.
Если этот флаг не задать,Windows будет выполнять все операции с файлом синхронно. 
Конечно, можно вызвать BeginRead и приложение будет считать, что операция выполняется асинхронно, но на самом деле FileStream просто будет  использовать другой паток для эмуляции асинхронной операции. (Асинхронного чтения в терминах ОС не произойдет.) Этот дополнительный поток расходует ресурсы и ухудшает производительность.

Автор: Idsa 4.2.2007, 09:13
Понятненько...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)