Поток прослушивателя C # UDP - Не записывать процессор с помощью while (true)? - PullRequest
1 голос
/ 06 апреля 2011

С помощью следующего кода есть ли лучший способ настроить прослушивание UDP, чем while(true) с Thread.Sleep(10)?

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

1 Ответ

3 голосов
/ 06 апреля 2011

ReceiveFrom блокируется. Поток будет приостановлен до получения данных. Если Socket не находится в неблокирующем режиме.

...