public Transition() { SwigObject = Engine.ObjectSystemFactory.CreateTransition(); var p = SwigObject.GetPtr(); if (GC.Transitions.GetObject(p) != null) { Particular.Helper.ThrowException(""); } GC.Transitions.AddObject(p, this); }
public Transition() { SwigObject = Engine.ObjectSystemFactory.CreateTransition(); var p = SwigObject.GetPtr(); if (GC.Transitions.GetObject(p) != null) { Particular.Helper.ThrowException(""); } GC.Transitions.AddObject(p, this); }
/// <summary> /// 強制的に使用しているメモリを開放する。 /// </summary> /// <remarks> /// 何らかの理由でメモリが不足した場合に実行する。 /// 開放した後の動作の保証はしていないので、必ず参照が残っていないことを確認する必要がある。 /// </remarks> public void ForceToRelease() { lock (this) { if (SwigObject == null) { return; } GC.Collector.AddObject(SwigObject); SwigObject = null; } Particular.GC.SuppressFinalize(this); }
public Transition() { coreInstance = Engine.ObjectSystemFactory.CreateTransition(); var p = coreInstance.GetPtr(); if (GC.Transitions.Contains(p)) { Particular.Helper.ThrowException(""); } GC.Transitions.AddObject(p, this); }
protected virtual void Dispose(bool disposing) { if (disposed) { return; } var core = coreInstance; if (core != null) { GC.Collector.AddObject(core); coreInstance = null; } disposed = true; }
public void Destroy() { lock (this) { if (SwigObject == null) return; GC.Collector.AddObject(SwigObject); SwigObject = null; } Particular.GC.SuppressFinalize(this); }