protected override async Task ExecuteAsync(CancellationToken stoppingToken) { while (!stoppingToken.IsCancellationRequested) { double distance = await this.distanceSensor.MeasureDistance(stoppingToken); if (distance <= 25 && driveService.IsGoingForward()) { logger.LogDebug("Distance less than 25 cm. Stopping."); driveService.StopDrive(); } await Task.Delay(TimeSpan.FromMilliseconds(100), stoppingToken); } }