/// <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; }
/// <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; }