public static void RemoveParticleEffect(MyParticleEffect effect, bool fromBackground = false) { //System.Diagnostics.Debug.Assert(m_updateCompleted == true); //Because XNA can call Update() more times per frame if (!fromBackground) { WaitUntilUpdateCompleted(); } bool remove = true; if (!effect.UserDraw /*&& effect.Enabled*/) { lock (m_particleEffectsForUpdate) { //System.Diagnostics.Debug.Assert(m_particleEffectsForUpdate.Contains(effect)); remove = m_particleEffectsForUpdate.Contains(effect); if (remove) { m_particleEffectsForUpdate.Remove(effect); } } } m_particleEffectsAll.Remove(effect); if (remove) { MyParticlesLibrary.RemoveParticleEffectInstance(effect); } }