.net Socket ReceiveFromAsync是否隐式多线程?

.net Socket ReceiveFromAsync是否隐式多线程?,.net,multithreading,sockets,packets,.net,Multithreading,Sockets,Packets,我目前正在开发一个高性能的原始套接字应用程序 我正在使用ReceiveFromAsync接收数据包。这听起来可能是一个愚蠢的问题,但这是隐含的线程吗?我不确定是否需要获取接收到的数据包并执行线程处理,以确保在处理当前数据包时没有阻塞任何其他数据包。文档中并没有真正提到这一点。3.5套接字的示例代码没有对其进行线程处理,因此我最初猜测它是隐式处理的 感谢所有异步IO函数创建/利用IO完成端口,这是进程提交的请求队列。每当进程进行异步IO调用时都会在此队列上提交此请求。然后,一个特殊的线程池处理这些

我目前正在开发一个高性能的原始套接字应用程序

我正在使用ReceiveFromAsync接收数据包。这听起来可能是一个愚蠢的问题,但这是隐含的线程吗?我不确定是否需要获取接收到的数据包并执行线程处理,以确保在处理当前数据包时没有阻塞任何其他数据包。文档中并没有真正提到这一点。3.5套接字的示例代码没有对其进行线程处理,因此我最初猜测它是隐式处理的


感谢所有
异步IO
函数创建/利用IO完成端口,这是进程提交的请求队列。每当进程进行
异步IO调用时
都会在此队列上提交此请求。然后,一个特殊的线程池处理这些IO请求,它们是
内核线程
。因此,如果您认为这个系统管道(<代码>这些内核线程< /代码>)是多线程的一部分,是的,您的代码是多线程的。

如果您考虑通过<代码> Asic IO 调用作为您的起始点的抽象,那么您的代码可能不是多线程的。 在这两种情况下,都有多个线程正在运行,即使它们不是应用程序中的专用线程,或者它们是在应用程序启动之前创建的,并且它们将在应用程序存在后继续运行