日期:2014-05-18  浏览次数:21164 次

关于SocketAsyncEventArgs 的两个疑问
1:查看MSDN 说的是类IOCP的机制,也就是说 完成事件的回调函数
this.eventArgs.Completed += new EventHandler<SocketAsyncEventArgs>(this.ReceivedCompleted);

ReceivedCompleted 这个函数 是多线程处理的吗 因为IOCP的机制是会分配多个线程来处理。那这样意味着ReceivedCompleted函数就需要加锁来保证数据同步 是吧。。还是C#底层已经做了同步 无需管


2:用这个来做服务器程序 是否需要为每个连接建立 SocketAsyncEventArgs 还是只是监听的SOCKET 来设置SocketAsyncEventArgs。。这个比较迷茫 。。。个人感觉 应该无需为每个连接配置SocketAsyncEventArgs吧。。

请高人指点

------解决方案--------------------
iocp内部会有线程池,回调后不是多线程,你是哪个线程中处理,回调就会到哪个线程
------解决方案--------------------
正在学习啊,楼主,教教我啊
------解决方案--------------------
1. 没用到多线程吧,用到回调
2. 不需要多开SOCKET了吧,SOCKET共用一个,SocketAsyncEventArgs也能重用,这才高效啊