Я прочитал документацию для ReadDirectoryChangesW()
, а также просмотрел CDirectoryChangeWatcher
project, но не сказал , почему можно было бы назвать это асинхронно. Я понимаю, что поток current не будет блокировать, но, по крайней мере, для кода CDirectoryChangeWatcher, который использует порт завершения, когда он вызывает GetQueuedCompletionStatus()
, , что нитей блокирует в любом случае (если изменений нет).Зачем использовать ReadDirectoryChangesW асинхронно?
Так что, если я вызываю ReadDirectoryChangesW()
синхронно в отдельном потоке, в первую очередь, что мне все равно, если он блокируется, почему я когда-либо хотел бы позвонить ReadDirectoryChangesW()
асинхронно?
Значит, вы говорите, что нет веской причины? Опять же, как я сказал первоначально, если бы я заботился, если текущий поток блокирует, я бы создал отдельный поток, который мне не волнует, если он блокирует. –
Создание потока не всегда (хороший) вариант, и API собирается попробовать и обслуживать как можно больше пользователей, таким образом, асинхронный вариант. –