✅ is it a good disposable class?
public class AsyncDisposable
: Disposable,
IAsyncDisposable
{
public bool IsDisposedAsync { get; private set; }
public async ValueTask DisposeAsync()
{
if ( IsDisposedAsync || IsDisposed )
return;
_disposingСancellationTokenSource.Cancel();
await OnDisposeAsync.InvokeAsync();
await DisposeAsyncCore()
.ConfigureAwait( continueOnCapturedContext: false );
IsDisposedAsync = true;
Dispose();
GC.SuppressFinalize( this );
}
protected virtual ValueTask DisposeAsyncCore() =>
default;
public Func<ValueTask> OnDisposeAsync { get; set; }
} public class AsyncDisposable
: Disposable,
IAsyncDisposable
{
public bool IsDisposedAsync { get; private set; }
public async ValueTask DisposeAsync()
{
if ( IsDisposedAsync || IsDisposed )
return;
_disposingСancellationTokenSource.Cancel();
await OnDisposeAsync.InvokeAsync();
await DisposeAsyncCore()
.ConfigureAwait( continueOnCapturedContext: false );
IsDisposedAsync = true;
Dispose();
GC.SuppressFinalize( this );
}
protected virtual ValueTask DisposeAsyncCore() =>
default;
public Func<ValueTask> OnDisposeAsync { get; set; }
} what can I change?
