我试图考虑是否可以从使用 BeginAccept 中获得任何可伸缩性优势,而不是仅仅阻塞在等待连接的专用线程中。显然,各个客户端将使用 BeginXXX/EndXXX 对来利用 IOCP 进行网络 IO,但我认为等待客户端连接的延迟应该非常低。我计划创建一个任务来处理传入的连接,这样我在接受完成后的后续代码不会阻塞主接受线程很长时间(足够长来创建一个任务对象),我可以马上回到阻塞状态在新的连接上。这几乎是我对 BeginAccept/EndAccept 所做的,只是没有管理异步调用的复杂性。
所以,我的问题是,通过使用 IOCP 接受,我可以获得哪些可扩展性优势(如果有的话)?请注意,这不是用于在单个客户端套接字上发送/接收,而只是用于接受服务器侦听套接字上的连接。