gpt4 book ai didi

c# - BinaryReader 的奇怪行为

转载 作者:行者123 更新时间:2023-12-03 12:06:19 27 4
gpt4 key购买 nike

我有一个基于套接字的应用程序,它使用 BinaryReader 公开接收到的数据客户端的对象。我一直在尝试调试读取器中包含的数据不干净的问题......即我正在读取的缓冲区包含超过新数据大小的旧数据。

在下面的代码中:

System.Diagnostics.Debug.WriteLine("Stream length: {0}", _binaryReader.BaseStream.Length);
byte[] buffer = _binaryReader.ReadBytes((int)_binaryReader.BaseStream.Length);

当我注释掉第一行时,数据最终不会像我有那个打印行语句时那样变脏(或者,不会像通常那样变脏)。据我所知,来自服务器端的数据是干净的,所以我的套接字实现可能存在一些问题。但是有谁知道为什么添加该打印行会导致数据更频繁地变脏?

最佳答案

您的二进制阅读器看起来像是一个私有(private)成员变量(如果前导下划线是一个告诉标志)。

您的应用程序是多线程的吗?如果另一个线程在您读取它时也尝试使用您的 binaryReader,您可能会遇到竞争情况。即使没有这条线,您也会遇到问题,这对我来说似乎很可疑。

关于c# - BinaryReader 的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9232357/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com