BeginReceive的问题

sbs008 2011-11-14 10:56:32
一个用BeginReceive不停的异步接收数据,还有一个回收线程在回收socket连接。会不会出现下面的情况

1. BeginReceive接收完毕,开始执行异步回调,但是这个时候回收线程唤醒。会不会阻塞这个回调函数呢??
2. 如果阻塞了,是不是简单调用socket.close()就关掉了这个socket了。
3. 关掉了socket后回收线程执行完毕,那个回调函数是不是还会继续执行,这样就会出现异常了吧

情况是不是这样的?????????????????
...全文
182 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
pigg18 2013-02-16
  • 打赏
  • 举报
回复
beginvoke 是在线程里调用主线程的方法(也就是执行权从线程临时强迫主线程继续执行,并等待执行完毕) 主线程如果负载太高依旧会卡死 正确办法是启用线程来执行,并尽量不要蛮复杂执行beginvoke 否则相当于主线程满负载在跑 应当在线程启用thread.sleep来缓解主线程压力
Benjay77 2012-08-28
  • 打赏
  • 举报
回复
回调函数在beginreceive抓包后执行 创建一个新线程 将beginreceive阻塞
sbs008 2011-11-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 nevermore_0923 的回复:]

你根本不清楚BeginReceive的工作原理。

BeginReceive的AsyncCallback方法继续重写BeginReceive方法

就注定了你的这三个问题是没有事实根据的。

详细信息去看MSDN吧。
[/Quote]

MSDN也没有说的很清楚,BeginReceive的回调机制是什么?什么时候回调?回调是否就是一个新线程?回调函数是否会被线程调度打断?tcp的keep-aliver误杀一个socket后BeginReceive会出现什么样的情况?

还真是一个都没说.

弦弦 2011-11-15
  • 打赏
  • 举报
回复
你根本不清楚BeginReceive的工作原理。

BeginReceive的AsyncCallback方法继续重写BeginReceive方法

就注定了你的这三个问题是没有事实根据的。

详细信息去看MSDN吧。

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧