void SendPacket(bool isMultiCast) { if (_waiting || _stopped) { _timerRunning = false; return; } //Create Packet var packet = new Packet(); packet.Flags.IsResponse = false; packet.Queries.Add(new Query() { IsMulticast = isMultiCast, Record = new Record() { Class = 1, Name = _proto, RecordType = 12, }, }); //Send it try { _service.SendPacket(packet); } catch (SocketException ex) { //Likely temporary disconnect, try again next time } finally { //Setup next request _timerRunning = true; _timer.FireNext(delays[nextDelayIndex]); AdvanceDelay(); } }