public void Dispose() { if (IsDisposed) { return; } IsDisposed = true; if (GetBlockPartyServerTimer != null) { GetBlockPartyServerTimer.Stop(); } if (Socket != null) { if (Socket.IsConnected) { //Leave server if we're in a server if (LastServer != "NONE") { leave_server(LastServer); } Socket.Close(); } } OnDisposed?.Invoke(this, EventArgs.Empty); }
public void Dispose() { if (isDisposed) { return; } isDisposed = true; OnDisposed?.Invoke(this, new EventArgs()); if (userActivityTimeout > 0 && EnvironmentHelper.CurrentTime.Subtract(lastUserActionDate) > TimeSpan.FromSeconds(userActivityTimeout)) { Logger.Log("Disposing session stream {0}/{1} due to user timeout", session.SessionId, streamId); } else { Logger.Log("Disposing session stream {0}/{1} due to unexpected reason", session.SessionId, streamId); } lock (pullingCallbackLock) { if (pullingCallback != null) { pullingCallback.OnDisposed -= OnConnectionDisposed; pullingCallback.Dispose(); pullingCallback = null; } } userInfo?.Dispose(); userInfo = null; }
public void Dispose() { OnDisposed(this, EventArgs.Empty); foreach (var del in OnDisposed.GetInvocationList()) { Delegate.RemoveAll(del, del); } }
public void Dispose() { if (Interlocked.Increment(ref _disposeCount) != 1) { return; } OnDisposed?.Invoke(); }
public void Dispose() { _UIElement.Visibility = Visibility.Hidden; _HTMLControlBase.MainGrid.Children.Remove(_UIElement); _WPFWebWindow.Dispose(); OnDisposed?.Invoke(this, EventArgs.Empty); }
public virtual void Dispose() { if (!_isDisposed) { _isDisposed = true; OnDispose(); OnDisposed?.BeginInvoke(null, null); } }
public void Dispose() { if (!IsDisposed) { IsDisposed = true; connection.DataReceived -= OnDataReceived; connection.OnDisconnected -= OnDisconnected; Task.Run(() => DisposeInternal()); OnDisposed?.Invoke(this); } }
internal DataEnumerator(IEnumerable <T> source, OnDisposed onDisposed, OnEnumerationEnded onEnumerationEnded) { if (source == null) { throw new ArgumentNullException("source", "source can not be null!"); } mEnumerator = source.GetEnumerator(); mOnDisposed = onDisposed; mOnEnumerationEnded = onEnumerationEnded; }
/// <summary> /// handle the raising of disposal events /// </summary> public override void Dispose() { // If this object hasn't be disposed yet, raise the callback(s) if (!IsDisposed) { OnDisposed?.Invoke(this); } // Handle the base disposal behaviour base.Dispose(); }
public void Dispose() { foreach (var comp in _components) { comp.Dispose(); } while (Children.Count > 0) { Children[Children.Count - 1].Dispose(); } Children.Clear(); OnDisposed?.Invoke(this); }
/// <summary> /// Disposes the control. /// </summary> /// <returns></returns> /// <exception cref="ControlDisposedException">The control has already been disposed</exception> /// <exception cref="Exceptions.ComponentNotAddedToMapException">The control has not been added to the map</exception> public async ValueTask DisposeAsync() { Logger?.LogAzureMapsControlInfo(AzureMapLogEvent.GeolocationControl_DisposeAsync, "GeolocationControl - DisposeAsync"); Logger?.LogAzureMapsControlDebug(AzureMapLogEvent.GeolocationControl_DisposeAsync, $"Id: {Id}"); EnsureJsRuntimeExists(); EnsureNotDisposed(); await JsRuntime.InvokeVoidAsync(Constants.JsConstants.Methods.GeolocationControl.Dispose.ToGeolocationControlNamespace(), Id); Disposed = true; OnDisposed?.Invoke(); }
protected virtual void Dispose(bool disposing) { if (Interlocked.CompareExchange(ref _disposed, 1, 0) != 0) { return; } if (disposing) { ///告诉GC,不要调用析构函数 GC.SuppressFinalize(this); } OnDisposed?.Invoke(this, EventArgs.Empty); }
/// <summary> /// Frees resources and detaches itself from parent node. /// </summary> public virtual void Dispose() { foreach (var comp in _components) { comp.Dispose(); } _components.Clear(); for (int i = Children.Count - 1; i >= 0; i--) { Children[i].Dispose(); } Children.Clear(); OnDisposed?.Invoke(this); }
/// <summary> /// /// </summary> public void Dispose() { if (Option == TransScopeOption.RequireNew || Parent == null) { if (Trans != null) { Trans.Dispose(); LogDebug("Dispose Transaction. DbConnectionWrap.Guid={0}, TransScope.Guid={1}", _ConnectionId, Guid); } _State = TransScopeState.Dispose; LogDebug("Set TransScopeState to Dispose. DbConnectionWrap.Guid={0}, TransScope.Guid={1}", _ConnectionId, Guid); } OnDisposed?.Invoke(this, new EventArgs()); }
private bool disposedValue = false; // To detect redundant calls protected virtual async ValueTask Dispose(bool disposing) { if (!disposedValue) { if (disposing) { if (OnDisposed.HasDelegate) { await OnDisposed.InvokeAsync(EventArgs.Empty); } } disposedValue = true; } }
void CleanUp(bool isDisposing) { if (_isCleanedUp) { return; } if (isDisposing) { FreeManagedResources(); } FreeUnmanagedResources(); _isCleanedUp = true; OnDisposed?.Invoke(); }
/// <summary> /// 资源释放 /// </summary> public void Dispose() { if (!_isBeginCalledBefore || IsDisposed) { return; } IsDisposed = true; if (!_succeed) { OnFailed?.Invoke(this, new UnitOfWorkFailedEventArgs(_exception)); } DisposeUow(); OnDisposed?.Invoke(this, EventArgs.Empty); }
public void Dispose() { IEnumerator <T> tempEnumerator = mEnumerator; mEnumerator = null; if (tempEnumerator != null) { tempEnumerator.Dispose(); mOnEnumerationEnded = null; if (mOnDisposed != null) { mOnDisposed.Invoke(mEnumerationCount); mOnDisposed = null; } } }
/// <summary>子类重载实现资源释放逻辑时必须首先调用基类方法</summary> /// <param name="disposing">从Dispose调用(释放所有资源)还是析构函数调用(释放非托管资源)。 /// 因为该方法只会被调用一次,所以该参数的意义不太大。</param> protected virtual void OnDispose(Boolean disposing) { // 只有从Dispose中调用,才有可能是1 if (Interlocked.CompareExchange(ref disposed, 2, 1) != 1) { throw new Exception("设计错误,OnDispose应该只被调用一次!代码不应该直接调用OnDispose,而应该调用Dispose。"); } if (disposing) { // 释放托管资源 // 告诉GC,不要调用析构函数 GC.SuppressFinalize(this); } // 释放非托管资源 OnDisposed?.Invoke(this, EventArgs.Empty); }
protected virtual void Dispose(bool disposing) { if (!disposedValue) { if (disposing) { Tooltip = null; parent?.Remove(this); manager.NotifyWidgetDisposed(this); ClearWidgets(); } children = null; disposedValue = true; if (disposing) { OnDisposed?.Invoke(this, EventArgs.Empty); } } }
public void OnEndDrag() { toolIcon.sprite = buttonSpriteSet.normal; if (IsOverBin()) { Tween hideTween = uiAnimation.Hide(); hideTween.OnComplete(() => { Destroy(this); OnDisposed.Invoke(); }); } else { transform.SetParent(Container); transform.SetSiblingIndex(placeholder.transform.GetSiblingIndex()); } ToolBin.gameObject.SetActive(false); Destroy(placeholder); }
/// <summary> /// Free resources /// </summary> public void Dispose() { if (_IsDisposed) { return; } _IsDisposed = true; if (_Process != null) { try { _Process.Kill(); } catch { } _Process.Dispose(); _Process = null; } if (_Thread != null) { try { _Thread.Abort(); } catch { } _Thread = null; } if (_Object != null) { try { _Object.Dispose(); } catch { } _Object = null; } OnDispose(); OnDisposed?.Invoke(this, EventArgs.Empty); if (DisposeTag && Tag != null && Tag is IDisposable) { ((IDisposable)Tag).Dispose(); Tag = null; } }
public Proxy() { #if false m_clientTxQueue = new Queue(); m_destinationTxQueue = new Queue(); #else m_clientTxQueue = new LinkedList <byte[]>(); m_destinationTxQueue = new LinkedList <byte[]>(); m_clientTxQueueMutex = new object(); m_destinationTxQueueMutex = new object(); #endif //ProprietarySegmentTxMutex = new Mutex(); //NonProprietarySegmentTxMutex = new Mutex(); //ProprietarySegmentRxMutex = new Mutex(); //NonProprietarySegmentRxMutex = new Mutex(); m_ProprietarySegmentTxMutex = new object(); m_NonProprietarySegmentTxMutex = new object(); m_ProprietarySegmentRxMutex = new object(); m_NonProprietarySegmentRxMutex = new object(); m_clientStreamMutex = new object(); m_destinationStreamMutex = new object(); m_disposeMutex = new object(); m_ProprietarySegmentTxInProgress = false; m_ProprietarySegmentRxInProgress = false; m_NonProprietarySegmentTxInProgress = false; m_NonProprietarySegmentRxInProgress = false; m_IsMsgBeingTransmitted2Client = false; m_IsMsgBeingTransmitted2Destination = false; m_NonProprietarySegmentRxBuf = new byte[8192 * 4]; m_ProprietarySementRxBuf = new byte[8192 * 4]; m_rxStateMachine = new RxStateMachine(m_Id); m_txStateMachine = new TxStateMachine(m_Id); m_OnNonProprietaryReceivedCbk = new SocketAsyncEventArgs(); m_OnNonProprietaryTransmittedCbk = new SocketAsyncEventArgs(); m_OnProprietaryReceivedCbk = new SocketAsyncEventArgs(); m_OnProprietaryTransmittedCbk = new SocketAsyncEventArgs(); m_OnNonProprietaryReceivedCbk.Completed += new EventHandler <SocketAsyncEventArgs>(OnNonProprietarySegmentReceived); m_OnNonProprietaryTransmittedCbk.Completed += new EventHandler <SocketAsyncEventArgs>(OnNonProprietarySegmentTransmitted); m_OnProprietaryReceivedCbk.Completed += new EventHandler <SocketAsyncEventArgs>(OnProprietarySegmentReceived); m_OnProprietaryTransmittedCbk.Completed += new EventHandler <SocketAsyncEventArgs>(OnProprietarySegmentTransmitted); m_ShutDownFlag = false; m_TransmittedClient = 0; m_ReceivedClient = 0; m_TransmittedServer = 0; m_ReceivedServer = 0; m_TransmittedMsgsClient = 0; m_ReceivedMsgs = 0; m_SubmittedMsgsClient = 0; m_SubmittedMsgsServer = 0; m_SubmittedClient = 0; m_SubmittedServer = 0; m_Saved = 0; m_clientStream = new MyMemoryStream.MyMemoryStream(); m_destinationStream = new MyMemoryStream.MyMemoryStream(); m_onGotResults = null; m_onDisposed = null; m_clientSideDiscAsyncArgs = new SocketAsyncEventArgs(); m_clientSideDiscAsyncArgs.Completed += new EventHandler <SocketAsyncEventArgs>(OnClientDisconnected); m_ServerSideDiscAsyncArgs = new SocketAsyncEventArgs(); m_ServerSideDiscAsyncArgs.Completed += new EventHandler <SocketAsyncEventArgs>(OnDestinationDisconnected); m_InfiniteWaitTs = new TimeSpan(0, 0, 0, 0, -1); m_ImmediateReturnTs = new TimeSpan(0, 0, 0, 0, 0); m_ProprietaryRxInitiatedTs = new DateTime(); m_ProprietaryRxCompletedTs = new DateTime(); m_ProprietaryTxInitiatedTs = new DateTime(); m_ProprietaryTxCompletedTs = new DateTime(); m_NonProprietaryRxInitiatedTs = new DateTime(); m_NonProprietaryRxCompletedTs = new DateTime(); m_NonProprietaryTxInitiatedTs = new DateTime(); m_NonProprietaryTxCompletedTs = new DateTime(); LogUtility.LogUtility.LogFile("Started at " + DateTime.Now.ToLongTimeString(), LogUtility.LogLevels.LEVEL_LOG_HIGH); }
virtual public void SetOnDisposed(OnDisposed cbk) { m_onDisposed = cbk; }
public void Dispose() { Items?.Clear(); OnDisposed?.Invoke(this); }
public void Dispose() { OnDisposed?.Invoke(this, EventArgs.Empty); }
/// <inheritdoc /> public void Dispose() { OnDisposed?.Invoke(this); }
public void Dispose() { Clear(); IsDisposed = true; OnDisposed?.Invoke(); }
public void DisposeView() { UnityEngine.Object.Destroy(View.GetGameObject); View = null; OnDisposed?.Invoke(this); }
public void Dispose() { Console.WriteLine("Disposed"); OnDisposed?.Invoke(new object(), new ObjectDisposedEventArgs()); }