private async Task RunAsync(CancellationToken stopToken)
{
while (!stopToken.IsCancellationRequested)
{
await entryChannelReader.WaitToReadAsync();
while (entryChannelReader.TryRead(out var entry)
payload.AppendEntry(entry);
if (/*Delivery not yet needed*/)
continue;
if (/*Too soon since last delivery*/)
await _systemClock.WaitAsync(/*Remaining time until next delivery*/, stopToken);
await deliveryManager.DeliveryPayloadAsync(payload);
payload.Clear();
}
}
private async Task RunAsync(CancellationToken stopToken)
{
while (!stopToken.IsCancellationRequested)
{
await entryChannelReader.WaitToReadAsync();
while (entryChannelReader.TryRead(out var entry)
payload.AppendEntry(entry);
if (/*Delivery not yet needed*/)
continue;
if (/*Too soon since last delivery*/)
await _systemClock.WaitAsync(/*Remaining time until next delivery*/, stopToken);
await deliveryManager.DeliveryPayloadAsync(payload);
payload.Clear();
}
}