Beispiel #1
0
 private void DestroyReplayRenderer(ReplayRenderer renderer)
 {
     if (m_Remote != null)
     {
         m_Remote.CloseCapture(renderer);
     }
     else
     {
         renderer.Shutdown();
     }
 }
Beispiel #2
0
        private void RunThread()
        {
            try
            {
                ReplayRenderer renderer = null;
                RemoteRenderer remote   = null;
                CreateReplayRenderer(ref renderer, ref remote);
                if (renderer != null)
                {
                    System.Diagnostics.Debug.WriteLine("Renderer created");

                    Running = true;

                    while (Running)
                    {
                        List <InvokeHandle> queue = new List <InvokeHandle>();
                        lock (m_renderQueue)
                        {
                            foreach (var cmd in m_renderQueue)
                            {
                                queue.Add(cmd);
                            }

                            m_renderQueue.Clear();
                        }

                        foreach (var cmd in queue)
                        {
                            if (cmd.method != null)
                            {
                                cmd.method(renderer);
                            }

                            cmd.processed = true;
                        }

                        m_WakeupEvent.WaitOne(10);
                    }

                    lock (m_renderQueue)
                    {
                        foreach (var cmd in m_renderQueue)
                        {
                            cmd.processed = true;
                        }

                        m_renderQueue.Clear();
                    }

                    renderer.Shutdown();
                    if (remote != null)
                    {
                        remote.Shutdown();
                    }
                }
            }
            catch (ApplicationException ex)
            {
                InitException = ex;
            }
        }