private void SendCommand(CommandWithActions toSend) { try { int sequenceNumber; lock (this) { sequenceNumber = _sequenceNumber; _sequenceNumber++; _responseListeners[sequenceNumber] = toSend; } byte[] payload = toSend.Command.GetBytes(sequenceNumber); var sendTask = _streamSpheroWrapper.SendBytes(payload); sendTask.Start(); sendTask.Wait(); } catch (AggregateException exception) { toSend.OnError(exception.InnerException); } catch (Exception exception) { toSend.OnError(exception); } }
private async Task SendCommand(CommandWithActions toSend) { try { int sequenceNumber; lock (this) { sequenceNumber = _sequenceNumber; _sequenceNumber++; _responseListeners[sequenceNumber] = toSend; } byte[] payload = toSend.Command.GetBytes(sequenceNumber); await _streamSpheroWrapper.SendBytes(payload); } catch (Exception exception) { toSend.OnError(exception); } }