public async Task WaitFlushFinish()
        {
            if (finilized)
            {
                return;
            }

            await semaphoreControl.WaitAsync();

            try
            {
                this.publishEnded = true;

                internalTs.Cancel();

                queueReaderTask.Wait();

                await EndJSonWriteObject();

                await jsonWriter.CloseAsync();

                hashSetId.Clear();
            }
            finally
            {
                finilized = true;

                semaphoreControl.Release();
            }
        }
 public override Task CloseAsync(CancellationToken cancellationToken = new CancellationToken()) => _writer.CloseAsync(cancellationToken);