我有一个套接字客户端,想知道正确的方法来读取接收到的数据。目前我正在使用以下函数:
这被称为它自己的线程:
正文:
您可以看到,我只是简单地读取并在队列列表上堆叠接收到的数据包,以便进一步进行线程处理,但我的问题是:
private void _ReadResponsePackets()
{
while (_socket.Connected)
{
try
{
byte[] bytes = new byte[1500];
_socket.Receive(bytes);
if (bytes.Length > 0)
LoginserverPackets.Enqueue(bytes);
}
catch (Exception ex)
{
_log.Write(ErrorType.ERROR, "[LOGINCLIENT] " + ex.ToString(), true);
}
}
}
这被称为它自己的线程:
Thread _readDataThread = new Thread(_ReadResponsePackets);
_readDataThread.Start();
正文:
您可以看到,我只是简单地读取并在队列列表上堆叠接收到的数据包,以便进一步进行线程处理,但我的问题是:
- 我应该在读取函数中使用 Thread.Sleep 还是保持原样?
- 它会对性能或内存使用产生更大的影响,是作为原样还是使用 Thread.Sleep?
还有其他想法吗?