public void AsyncBuild() { if (!IsBuildFinished() && m_event != null) { // already start building return; } if (m_event == null) { m_event = new ManualResetEvent(false); } m_event.Reset(); PrepareForBuild(); ThreadPool.InitInstance(); ThreadPool.QueueUserWorkItem(arg => ((MeshTreeBase)arg).BuildStart(), this); }