[WinAPI] Асинхронный вызов WinAPI.IO процедур из .NET
От: LWhisper  
Дата: 26.08.16 12:54
Оценка: 6 (1)
Приветствую.

Ни File.GetFileAttributes, ни сам WinAPI-метод из Kernell32.dll, как и многие его друзья, не предоставляют асинхронных версий, будь то async Task в .NET или Apc-очереди в WinAPI.
Однако, вызовы могут блокироваться. Особенно если речь идёт о получении данных по сети. В связи с этим вопрос — как правильно обернуть их в awaitable Task?
Может быть, я отстал от жизни и сейчас для всех методов по работе с файловой системой разработан асинхронный API?

Другой вопрос — если без блокирующих вызовов не обойтись — как их правильно отменять?
Есть функции CancelSynchronousIo и CancelIoEx, которые работают с нативными потоками? Но валидно ли их использовать для отмены задач в .NET?
winapi async await task .net io file
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.