private void EnqueueLoop() { while (processing) { if (!playback.TryGetNextCapture(out var capture)) { break; } using (capture) { if (!IsCaptureInInterval(capture)) { break; } while (processing) { if (tracker.TryEnqueueCapture(capture, Timeout.FromMilliseconds(10))) { break; } Thread.Sleep(1); } } } processing = false; }