Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Общие вопросы по .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 |
Понятненько... |