c# 异步 回调读取。让回调函数执行完后返回

六组 2013-10-20 10:49:53
c# 异步 回调读取数据时,我只想首先数据头,然后继续读剩下数据:问题是,读完头后回调函数就返回了。剩下数据只有下次才可以读。

代码:networkStream.BeginRead(readObject.bytes, 0, client.ReceiveBufferSize, ReadCallback, readObject);

回调函数:private void ReadCallback(IAsyncResult ar)
{
ReadObject readObject = (ReadObject)ar.AsyncState;

byte[] header_data = new byte[header_size];
header_data = br.ReadBytes(header_size);执行到此处就返回了,后面的就不执行了。
...全文
751 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
火拼阿三 2013-10-21
  • 打赏
  • 举报
回复
你的异步根本没有写完成,你判断了是否完成吗?你有结束异步吗?如果不结束的话会造成内存泄露。
bdmh 2013-10-20
  • 打赏
  • 举报
回复
是不是一次就把数据发完了,或者你处理有问题,收一次就断开了
threenewbee 2013-10-20
  • 打赏
  • 举报
回复
怎么可能,你贴出完整的代码,什么不执行,你怎么知道没有执行。

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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