예제 #1
0
 /// <summary>
 /// Creates a new disposable that executes <paramref name="dispose"/> when disposed.
 /// </summary>
 /// <param name="dispose">The delegate to execute when disposed. If this is <c>null</c>, then this instance does nothing when it is disposed.</param>
 /// <param name="flags">Flags that control how asynchronous disposal is handled.</param>
 public AnonymousAsyncDisposable(Func <ValueTask>?dispose, AsyncDisposeFlags flags)
     : base(dispose !)
 {
     _flags = flags;
 }
예제 #2
0
 /// <summary>
 /// Creates a disposable that disposes a collection of disposables.
 /// </summary>
 /// <param name="disposables">The disposables to dispose. May not be <c>null</c>, but entries may be <c>null</c>.</param>
 /// <param name="flags">Flags that control how asynchronous disposal is handled.</param>
 public CollectionAsyncDisposable(IEnumerable <IAsyncDisposable?> disposables, AsyncDisposeFlags flags)
     : base(ImmutableQueue.CreateRange(disposables.WhereNotNull()))
 {
     _flags = flags;
 }