Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#UDP侦听器线程--Don';是否使用while(true)刻录CPU?_C#_Sockets_Network Programming_Udp - Fatal编程技术网

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);
        }
    }