/// <summary> /// Dispose. /// </summary> /// <since_tizen> 3 </since_tizen> public void Dispose() { //Throw excpetion if Dispose() is called in separate thread. if (!Window.IsInstalled()) { throw new System.InvalidOperationException("This API called from separate thread. This API must be called from MainThread."); } if (isDisposeQueued) { Dispose(DisposeTypes.Implicit); } else { Dispose(DisposeTypes.Explicit); System.GC.SuppressFinalize(this); } }
/// <summary> /// Dispose. /// </summary> /// <since_tizen> 6 </since_tizen> public void Dispose() { //Throw excpetion if Dispose() is called in separate thread. if (!Window.IsInstalled()) { Tizen.Log.Error("NUI", "This API called from separate thread. This API must be called from MainThread."); return; } if (isDisposeQueued) { Dispose(DisposeTypes.Implicit); } else { Dispose(DisposeTypes.Explicit); System.GC.SuppressFinalize(this); } }
protected override void Dispose(bool disposing) { if (disposedThis) { return; } if (disposing) { // TODO: dispose managed state (managed objects). // Explicit call. user calls Dispose() //Throw excpetion if Dispose() is called in separate thread. if (!Window.IsInstalled()) { throw new System.InvalidOperationException("This API called from separate thread. This API must be called from MainThread."); } if (isDisposeQueued) { Dispose(DisposeTypes.Implicit); } else { Dispose(DisposeTypes.Explicit); } } else { // Implicit call. user doesn't call Dispose(), so this object is added into DisposeQueue to be disposed automatically. if (!isDisposeQueued) { isDisposeQueued = true; DisposeQueue.Instance.Add(this); } } // TODO: free unmanaged resources (unmanaged objects) and override a finalizer below. // TODO: set large fields to null. disposedThis = true; base.Dispose(disposing); }