private void TaskOnStateChanged(object sender, BaseTaskState e) { try { OnStateChanged.Invoke(sender, e); } catch (Exception error) { _logger.LogError($"RecognitionTask state listener thrown unhandled exception:\n{error}"); } }
private void OnStateChanged(object sender, BaseTaskState e) { if (!(sender is RecognitionTask)) { return; } var task = (RecognitionTask)sender; if (task.SearchTask.State != BaseTaskState.Succeeded) { return; } var _ = Task.Run(async() => { foreach (var face in task.Faces) { await _service.ReportLabelAsync(face.SearchResults[0].Label, face.SearchResults[0].Distance, CancellationToken.None); } }); }
private void OnStateChanged(object sender, BaseTaskState e) { if (!(sender is RecognitionTask)) { return; } var task = (RecognitionTask)sender; if (!task.IsCompleted) { return; } _metrics.Write(DetectionTime, task.DetectionTask.Time); if (task.SearchTask.IsCompleted) { _metrics.Write(VectorTime, task.VectorizationTask.Time); _metrics.Write(SearchTime, task.SearchTask.Time); } _metrics.Write(FaceCount, task.FaceCount); }