private void DestroyReplayRenderer(ReplayRenderer renderer) { if (m_Remote != null) { m_Remote.CloseCapture(renderer); } else { renderer.Shutdown(); } }
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; } }