"现在已经正在使用此 SocketAsyncEventArgs 实例进行异步套接字操作"的处理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了"现在已经正在使用此 SocketAsyncEventArgs 实例进行异步套接字操作"的处理相关的知识,希望对你有一定的参考价值。

"现在已经正在使用此 SocketAsyncEventArgs 实例进行异步套接字操作"

    发现不少人在使用SocketAsyncEventArgs进行高性能通信开发时碰到此问题,但网络上没有具体的解决方案,因此记录分享下我的处理方式

    首先此问题通常在接入连接、和数据发送、接收时出现此异常

    1.接收连接时抛出此异常,需要实现接收连接的同步,使用semaphor等待即可

    2.使用SocketAsyncEventArgs的核心是实现对象复用,减少对象的分配和回收从而提高程序性能。通常是使用stack或queue管理异步对象,我使用的是stack

    stack池是后进先出,多线程数据的接收、发送和对象的pop、push会出现混乱(因此使用queue应该会更好),所以需要实现它们之间的同步

    同步实现的方式是在一个连接断开的时候使用lock保证对异步对象的操作同步即可,因为只有在连接断开时才会有异步对象的pop和push。


以上只是我个人解决此问题的思路和方式,具体情况具体分析,希望可以帮到你

本文出自 “xiao宇宙” 博客,请务必保留此出处http://5460095.blog.51cto.com/5450095/1758465

以上是关于"现在已经正在使用此 SocketAsyncEventArgs 实例进行异步套接字操作"的处理的主要内容,如果未能解决你的问题,请参考以下文章

表单中的 reCAPTCHA 消息:“此 reCAPTCHA 当前正在本地主机上运行。”

使用 SQLite“没有这样的表”测试 NHibernate - 生成模式

“此游戏不适用于您的手机” Facebook 通知错误

GhostDoc“记录此”不适用于具有属性的方法

应用程序处理失败,并显示消息“此构建无效”。

如何删除 php 中的单行注释(例如“// 删除此注释”)?