public void BooleanDisposable() { var d = new BooleanDisposable(); Assert.False(d.IsDisposed); d.Dispose(); Assert.True(d.IsDisposed); d.Dispose(); Assert.True(d.IsDisposed); }
public void DisposeSimple() { var b = new BooleanDisposable(); Assert.IsFalse(b.IsDisposed, "#1"); b.Dispose(); Assert.IsTrue(b.IsDisposed, "#2"); b.Dispose(); // call multiple time Assert.IsTrue(b.IsDisposed, "#2"); }
IEnumerator OnCompletedDelay() { var frameCount = parent.frameCount; while (!coroutineKey.IsDisposed && frameCount-- != 0) { yield return(yieldInstruction); } if (!coroutineKey.IsDisposed) { coroutineKey.Dispose(); try { observer.OnCompleted(); } finally { Dispose(); } } }
public void Boolean() { var bd = new BooleanDisposable(); bd.IsDisposed.IsFalse(); bd.Dispose(); bd.IsDisposed.IsTrue(); }
/// <summary> /// BooleanDisposable 只是封装了一下布尔值,调用完 Dispose,IsDisposed 会为 True /// </summary> public static void BoolDisposable() { var boolDisposable = new BooleanDisposable(); Console.WriteLine($"Before, IsDisposed = {boolDisposable.IsDisposed}"); boolDisposable.Dispose(); Console.WriteLine($"After, IsDisposed = {boolDisposable.IsDisposed}"); }
internal void Invoke() { if (!disposable.IsDisposed) { action?.Invoke(); disposable.Dispose(); } }
public void Dispose() { if (cancelDisposable != null) { cancelDisposable.Dispose(); } GC.SuppressFinalize(this); }
private static void BooleanDisposable() { Demo.DisplayHeader("The BooleanDispoable - sets a boolean flag upon disposal"); var booleanDisposable = new BooleanDisposable(); Console.WriteLine("Before dispose, booleanDisposable.IsDisposed = {0}", booleanDisposable.IsDisposed); booleanDisposable.Dispose(); Console.WriteLine("After dispose, booleanDisposable.IsDisposed = {0}", booleanDisposable.IsDisposed); }
protected virtual void Dispose(bool disposing) { if (!disposable.IsDisposed) { if (disposing) { container.Dispose(); } disposable.Dispose(); } }
public void BooleanDisposable_Test() { // arrange var disp = new BooleanDisposable(); // act & verify Assert.IsFalse(disp.IsDisposed); disp.Dispose(); Assert.IsTrue(disp.IsDisposed); }
public static void BooleanDisposable_HasAFlagSetToTrue_AfterItHasBeenDisposed() { var booleanDisposable = new BooleanDisposable(); if (!booleanDisposable.IsDisposed) { Console.WriteLine("Disposing"); booleanDisposable.Dispose(); } if (booleanDisposable.IsDisposed) { Console.WriteLine("Succesfully Disposed"); } }
IEnumerator DrainQueue(Queue <T> q, int frameCount) { lock (gate) { readyDrainEnumerator = false; // use next queue. running = false; } while (!cancelationToken.IsDisposed && frameCount-- != 0) { yield return(null); } try { if (q != null) { while (q.Count > 0 && !hasError) { if (cancelationToken.IsDisposed) { break; } lock (gate) { running = true; } var value = q.Dequeue(); observer.OnNext(value); lock (gate) { running = false; } } if (q.Count == 0) { pool.Return(q); } } if (hasError) { if (!cancelationToken.IsDisposed) { cancelationToken.Dispose(); try { observer.OnError(error); } finally { Dispose(); } } } else if (calledCompleted) { lock (gate) { // not self only if (runningEnumeratorCount != 1) { yield break; } } if (!cancelationToken.IsDisposed) { cancelationToken.Dispose(); try { observer.OnCompleted(); } finally { Dispose(); } } } } finally { lock (gate) { runningEnumeratorCount--; } } }
public void Dispose() { _disposable.Dispose(); _pipe.Dispose(); }
/// <summary> /// 释放时 /// </summary> public void Dispose() { disposable.Dispose(); }