Я создаю службу Windows в .NET 8.
Примерно каждую минуту она порождает несколько долго работающих рабочих потоков.
Я могу фиксировать состояние потоков и ожидающих заданий.
Мне интересно, можно ли предоставить конечную точку http для отображения этого статуса обратно конечному пользователю, и как это сделать?
Program.cs
public static void Main(string[] args)
{
var builder = Host.CreateApplicationBuilder(args);
var services = builder.Services;
var configuration = builder.Configuration;
// configuration setup
services.AddLogging();
services.AddHttpClient().RemoveAll();
// service registration
builder.Services.AddHostedService();
// Build and configure the app
var app = builder.Build();
app.Run();
}
Worker.cs Выполнение асинхронной функции
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
while (!stoppingToken.IsCancellationRequested)
{
// Do stuff...
var delayMs = _options.PollingIntervalSeconds * 1000;
try
{
await Task.Delay(delayMs, stoppingToken);
}
catch (OperationCanceledException)
{
// Expected during shutdown
break;
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/798 ... ws-service