Exemple #1
0
        internal override ValueTask DisposeAsync(bool disposing)
#endif
        {
            if (!_isDisposed)
            {
                if (disposing)
                {
                    _connectCancelToken?.Dispose();
                    (WebSocketClient as IDisposable)?.Dispose();
#if NETSTANDARD2_1
                    if (!(_decompressor is null))
                    {
                        await _decompressor.DisposeAsync().ConfigureAwait(false);
                    }
#else
                    _decompressor?.Dispose();
#endif
                }
            }

#if NETSTANDARD2_1
            await base.DisposeAsync(disposing).ConfigureAwait(false);
#else
            return(base.DisposeAsync(disposing));
#endif
        }
    public override async Task Stop()
    {
        if (!WasStarted)
        {
            return;
        }

        //Stop the recording first.
        await base.Stop();

        //Then close the streams.
        //await _compressStream.FlushAsync();
        await _compressStream.DisposeAsync();

        await _bufferedStream.FlushAsync();

        await _fileStream.FlushAsync();

        await _bufferedStream.DisposeAsync();

        await _fileStream.DisposeAsync();
    }