public ImageScene() { InitializeComponent(); Logger = new SimpleLogger(); Logger.MessageLoggedEvent += UpdateLog; FrameRateManager = new FrameRateManager(); FrameRateManager.FrameRateUpdated += UpdateFrameRate; ViewModel = new ImageSceneViewModel(Logger, FrameRateManager); }
void FrameArrived(MediaFrameReader sender, MediaFrameArrivedEventArgs args) { if (AcquiringFrame) { return; } AcquiringFrame = true; var frameStopWatch = Stopwatch.StartNew(); using (var frame = sender.TryAcquireLatestFrame()) { var task = ProcessFrameAsync(frame); } frameStopWatch.Stop(); FrameRateManager.Increment(frameStopWatch.ElapsedMilliseconds); AcquiringFrame = false; }