namespace Splitter_UI.Services; public class SingleThreadedDetector(IObjectDetector _detector) : IObjectDetector where T : IObjectDetector { private Lock _lock = new(); public List<(OpenCvSharp.Rect box, Point2f center)> DetectAll(SingleTask job, Mat frameCont) { lock (_lock) { return _detector.DetectAll(job, frameCont); } } public void Dispose() { if ( _detector is IDisposable d ) d.Dispose(); } }