private void EnsureBackgroundExecution(Action action) { if (UnityInitializer.IsMainThread()) { ThreadPool.QueueUserWorkItem(new WaitCallback(delegate { action.Invoke(); })); } else { action.Invoke(); } }