我正在尝试读取蒸汽,流继续。
我已经得到了以下内容,但我觉得有点奇怪,我将不断检查空流角色。在有更多数据之前,是否无法使线程休眠?
这里的速度非常重要,因为它必须处理高负荷。
NetworkStream networkStream = client.GetStream();
try
{
var reader = new StreamReader(networkStream);
StringBuilder stringBuilder = new StringBuilder();
char c = (char)reader.Read();
while (true)
{
if (c != (char)65535)
{
if (c == StreamSettings.MessageSplitChar)
{
// Do work with string here
}
else
{
stringBuilder.Append(c);
}
}
else
{
// No work to do sleep some
Thread.Sleep(10);
}
c = (char)reader.Read();
}
}
catch (Exception ex)
{
throw;
}
答案 0 :(得分:2)
Read
等待至少再有一个字节可用。你不需要等待自己。它会在流的末尾返回-1
。
(char)65535
是一个黑客。这是一个满溢的演员阵容。只需检查-1
。