Обновление
Я задал неправильный вопрос, перефразировал (основываясь на большой информации об ответах и комментариях):
Есть ли хороший источник для асинхронных операций .net async, являющихся реальным async, таким образом, IOCP или async (overlapped)? Есть ли какой-нибудь быстрый способ узнать, делают ли это несколько классов?
Пример неверия разработчиков инфраструктуры вслепую
Естественной отправной точкой для создания FileStream является статический метод File.Open(), документация для которого ничего не говорит о синхронности созданного FileStream! Это также не позволяет вам предоставлять FileOptions (которые используются для указания волшебного флажка FileOptions.Asynchronous).
Вместо этого FileStream создается с помощью FileOptions.None. Любые асинхронные операции легко подделываются обязательной реализацией базового класса Stream, который просто переносит соответствующий синхронный метод в делегат и вызывает его в пуле потоков с использованием метода BeginInvoke().
Это отклонение от обычной философии дизайна "ямы успеха", где все в .NET, похоже, работает так, как вы думаете, без необходимости внимательно читать документацию и/или постепенно обнаруживать неясные уловы и gotchas с течением времени.
Я пытался найти информацию об использовании IO Completion Ports в .NET
.
Есть ли какой-либо хороший способ узнать, использует ли данный .NET-класс порты ввода-вывода IO? (без необходимости запускать некоторые тесты каждый раз, когда вы используете новый класс.
Я пробовал документы msdn для некоторых классов и методов, и я ничего не смог найти на нем.
Еще лучше, было бы, если бы там был список со списком классов с использованием IOCP.