Базовая фоновая служба ASP.Net с очередью задач, нужна ли ей Task.Delay?C#

Место общения программистов C#
Anonymous
Базовая фоновая служба ASP.Net с очередью задач, нужна ли ей Task.Delay?

Сообщение Anonymous »

Я следил за документацией Microsoft о том, как реализовать BackgroundService с очередью задач, но заметил, что в основном цикле нет Task.Delay, это проблема или он все равно будет работать нормально?
Это класс обслуживания, о котором идет речь:

Код: Выделить всё

public class BackgroundTasksService : BackgroundService
{
public IBackgroundTaskQueue TaskQueue { get; }

public BackgroundTasksService(IBackgroundTaskQueue taskQueue)
{
TaskQueue = taskQueue;
}
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
await BackgroundProcessing(stoppingToken);
}

private async Task BackgroundProcessing(CancellationToken stoppingToken)
{
while (!stoppingToken.IsCancellationRequested)
{
var workItem =
await TaskQueue.DequeueAsync(stoppingToken);

try
{
await workItem(stoppingToken);
}
catch (Exception ex)
{
}
}
}

public override async Task StopAsync(CancellationToken stoppingToken)
{
await base.StopAsync(stoppingToken);
}
}
Этот код был взят из
https://learn.microsoft.com/en-us/aspne ... ost/hosted -services?view=aspnetcore-5.0&tabs=visual-studio#queued-background-tasks

Подробнее здесь: https://stackoverflow.com/questions/691 ... task-delay

Вернуться в «C#»