在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
以下是MSDN里异步socket示例的代码,我在代码里加入了显示当前线程ID的语句,想看看异步socket的线程是怎么分配的,与客户端配合运行后的结果如图 根据MSDN的原话: “异步套接字使用系统线程池中的线程处理传入的连接。 一个线程负责接受连接, 另一线程用于处理每个传入的连接, 还有一个线程负责接收连接数据。 这些线程可以是同一个线程,具体取决于线程池所分配的线程。” 个人理解:根据MSDN对异步socket连接、接受、发送等线程分配的解释,以及上面代码的注释和演示,我们在做异步socket编程时,不用对socket这组线程做任何处理,只要处理好主线程及其它线程与socket这周线程的关系就可。 补充:在main方法和AcceptCallback方法里分别加入 //如果要查看线程是否属于托管线程池,可使用 bool poolThread = Thread.CurrentThread.IsThreadPoolThread;//指示线程是否属于托管线程池 希望对异步socket及线程了解比较深入的同学,能给出更多的建议和指导 |
请发表评论