Task RVReporter.Tracked() { var ts = new TaskCompletionSource <bool>(); TDispatch(() => { if (cmpWin.ShouldStopTracking()) { btnReset.Content = "Stop"; TrackingStats.CamTrackEnabled = false; chkCamTrack.IsChecked = false; EndRecord(); cmpWin.StopDrive(); ts.SetResult(true); return; } btnReset.Content = $"Track {trackCount++}"; ts.SetResult(false); }); return(ts.Task); }
protected void grabbed(Mat matOrig) { if (inGrab) { //Console.WriteLine("Skipping frame"); return; } inGrab = true; var mat = matOrig.Clone(); reporter.ShowMat(mat).ContinueWith(tempt => { using (mat) { ShiftVecDector.ResizeToStdSize(mat); if (TrackingStats.CamTrackEnabled) { if (cmpWin.ShouldStopTracking()) { inGrab = false; reporter.Tracked(); return; } cmpWin.CamTracking(mat).ContinueWith(t => { inGrab = false; reporter.Tracked(); }); SaveVideo(mat); return; } else { SaveVideo(mat); inGrab = false; } } }); }