c #: есть ли причина предпочитать асинхронный вызов сокета синхронным вызовам в моем собственном пуле потоков? - PullRequest
3 голосов
/ 13 мая 2011

Есть ли какое-либо преимущество в производительности при вызове BeginGetResponse по сравнению с вызывая GetResponse в моем собственном пуле потоков? Преимущество моего собственного пула является то, что я могу контролировать очередь запросов.

Спасибо!

1 Ответ

1 голос
/ 13 мая 2011

Когда вы вызываете GetResponse, даже если вы вызываете его в фоновом потоке ThreadPool, этот поток все равно будет заблокирован и не сможет выполнять другую работу. Это означает переключение контекста и т. Д. Если, однако, вы используете BeginGetResponse, то он переносит работу на сетевую карту, однако, что наиболее важно, вызывающий поток теперь может свободно выполнять и выполнять какую-то другую работу. Когда сетевая карта будет готова, она уведомит ваше приложение, после чего будет вызван обратный вызов.

...