/// <summary> /// Receive Loop /// </summary> private void ReceiveLoop() { try { TimeSpan timeout; object remoteEndpoint; StackPacket receivedPacket; timeout = new TimeSpan(0, 0, 0, 0, 100); // 100 milliseconds. // Check whether cancellation is requested before entering each receive loop. while (!receiveThreadCancellationTokenSource.IsCancellationRequested) { try { receivedPacket = udpTransport.ExpectPacket(timeout, out remoteEndpoint); socket.ReceivePacket(receivedPacket); } catch (TimeoutException) { } } } catch (Exception ex) { UnhandledExceptionReceived?.Invoke(ex); } }
/// <summary> /// Receive Loop /// </summary> private void ReceiveLoop() { TimeSpan timeout; object remoteEndpoint; StackPacket receivedPacket; timeout = new TimeSpan(0, 0, 0, 0, 100); // 100 milliseconds. while (running) { // An infinite loop to receive packet from transport stack. try { receivedPacket = udpTransport.ExpectPacket(timeout, out remoteEndpoint); socket.ReceivePacket(receivedPacket); } catch (TimeoutException) { } Thread.Sleep(RdpeudpSocketConfig.ReceivingInterval); } }