public override async Task Stop() { if (cancellationToken.IsCancellationRequested) { return; } logger.Info("Stop"); FrameWrapper?.Stop(); cancellationTokenSource.Cancel(); await receiverTask; cancellationTokenSource.Dispose(); cancellationTokenSource = null; dataRateTimer.Dispose(); dataRateTimer = null; State = STATE.STOP; }