C#UDP侦听器线程--Don';是否使用while(true)刻录CPU?
使用以下代码,是否有比使用C#UDP侦听器线程--Don';是否使用while(true)刻录CPU?,c#,sockets,network-programming,udp,C#,Sockets,Network Programming,Udp,使用以下代码,是否有比使用Thread.Sleep(10)设置while(true)更好的UDP侦听方法 ReceiveFrom正在阻塞。线程将被挂起,直到数据到达。除非Socket处于非阻塞模式。您应该添加这一点,因为ReceiveFrom处于阻塞状态,所以不需要睡眠。啊,好的,一定是我的插入线程烧坏了CPU。谢谢,我会放下睡眠@Kyle Brandt♦ 是的,Spleep过多。在调试中运行应用程序,当burning启动时,暂停调试并检查每个非sleaping线程。 public vo
Thread.Sleep(10)
设置while(true)
更好的UDP侦听方法
ReceiveFrom
正在阻塞。线程将被挂起,直到数据到达。除非Socket
处于非阻塞模式。您应该添加这一点,因为ReceiveFrom
处于阻塞状态,所以不需要睡眠
。啊,好的,一定是我的插入线程烧坏了CPU。谢谢,我会放下睡眠
@Kyle Brandt♦ 是的,Spleep
过多。在调试中运行应用程序,当burning启动时,暂停调试并检查每个非sleaping线程。
public void Start()
{
socket.Bind(ip);
while (true)
{
data = new byte[1024];
receivedDataLength = socket.ReceiveFrom(data, ref Remote);
raw = Encoding.ASCII.GetString(data, 0, receivedDataLength);
row = new LogRow(raw);
//Console.WriteLine(row.ClientIp);
row_queue.Enqueue(row);
Thread.Sleep(10);
}
}