У меня есть служба udp, которая прослушивает сокет для дейтаграмм udp:
int result = 0;
try
{
result = m_ReceivingSocket.Receive(buffer);
}
catch (SocketException e)
{
Log.Debug("Timed out with socket exception, so no result was found.", e);
}
Он делает это по таймеру каждую 1 миллисекунду, потому что важно, чтобы я получил сообщение udp как можно скорее. Большую часть времени генерируется исключение сокета, потому что время ожидания сокета истекло. Это потому, что сокет настроен на тайм-аут:
receivingSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, 1000);
К сожалению, когда я запускаю это, отладчик Visual Studio не позволяет мне шагать по коду. Он думает, что другой поток продолжает работать и не позволяет мне продолжить. Кто-нибудь видел это раньше? Кто-нибудь знает лучший способ получить из сокета, не имея дело с исключениями?