private async void ServiceThread() { _isRunning = true; while (!_isStopped) { if (_lastFrame == null) { _camera.IdentifiedPeople.Clear(); _camera.Status = SafePlace.Enums.CameraStatus.Offline; } else { var results = await _recognitionService.RecognizePeople(_lastFrame); if (results == null) { results = Enumerable.Empty <Guid>(); } _subject.OnNext(new SpottedPeople() { Camera = _camera.Guid, spottedPeople = results.Select(item => new SpottedPerson(_camera.Guid, item)) }); } Thread.Sleep(RequestPeriod); } _isRunning = false; }