예제 #1
0
        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)
                    {
                    }
                }
            }
        }
예제 #2
0
        /// <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.");
            }
        }