add gc interval

This commit is contained in:
2024-02-10 00:05:50 +08:00
parent 73895fbce4
commit aa7041962a
3 changed files with 24 additions and 2 deletions

View File

@@ -18,6 +18,8 @@ public class DataRecordQueue : IDisposable
public bool IsCompleted => _queue.IsCompleted;
public bool IsAddingCompleted => _queue.IsAddingCompleted;
public long LongestFieldCharCount { get; private set; }
public event Action? OnRecordWrite;
public event Action? OnRecordRead;
@@ -49,6 +51,7 @@ public class DataRecordQueue : IDisposable
public async Task EnqueueAsync(DataRecord record)
{
var charCount = record.FieldCharCount;
LongestFieldCharCount = Math.Max(LongestFieldCharCount, charCount);
if(_currentCharCount + charCount > _maxCharCount)
await TaskExtensions.WaitUntil(() => _currentCharCount + charCount < _maxCharCount, 50);
_queue.Add(record);