private void RenderFrame(object sender, DoWorkEventArgs e) { ProcessDepthFrameEventArgs args = (ProcessDepthFrameEventArgs)e.Argument; DepthFrameReference reference = args.frame; using (DepthFrame frame = reference.AcquireFrame()) { if (frame != null) { //////Debug.WriteLine("Depth frame arrived"); try { e.Result = new DFrame(frame); } catch (Exception) { } } } }
/// <summary> /// This is what gets called when a new Depth Frame comes in /// </summary> private void Reader_FrameArrived(object sender, DepthFrameArrivedEventArgs e) { if (!isWorking) { isWorking = true; BackgroundWorker bw; ProcessDepthFrameEventArgs args = new ProcessDepthFrameEventArgs(); args.frame = e.FrameReference; //set up background worker bw = new BackgroundWorker(); bw.DoWork += RenderFrame; bw.RunWorkerCompleted += Render_Complete; bw.RunWorkerAsync(args); } else { ////Debug.WriteLine("Depth fram already working."); } }