public void dispose() { if (_configDic == null) { return; } _configDic = null; _openDic.clear(); foreach (var list in _eventActiveDic) { TriggerEventRegistData[] values1 = list.getValues(); for (int i = 0, len = list.size(); i < len; ++i) { _eventRegistDataPool.back(values1[i]); values1[i] = null; } list.justClearSize(); } int[] keys = _instanceDic.getKeys(); TriggerInstance[] values = _instanceDic.getValues(); int fv = _instanceDic.getFreeValue(); TriggerInstance v; for (int i = keys.Length - 1; i >= 0; --i) { if ((keys[i]) != fv) { v = values[i]; _instancePool.back(v); keys[i] = fv; values[i] = null; } } _instanceDic.justClearSize(); TriggerActionRunner[] keys2 = _timerRunnerDic.getKeys(); TriggerActionRunner k2; for (int i2 = keys2.Length - 1; i2 >= 0; --i2) { if ((k2 = keys2[i2]) != null) { _argPool.back(k2.arg); disposeActionRunner(k2); keys2[i2] = null; } } _timerRunnerDic.justClearSize(); TriggerIntervalData[] keys3 = _timerIntervalDic.getKeys(); TriggerIntervalData k3; for (int i3 = keys3.Length - 1; i3 >= 0; --i3) { if ((k3 = keys3[i3]) != null) { _intervalPool.back(k3); keys3[i3] = null; } } _timerIntervalDic.justClearSize(); }