我编写了一个简单的 .NET 5.0 可执行文件,它在循环中执行。一切正常,但每当 Windows 进入睡眠状态并恢复时,程序的循环执行就会停止。有谁知道如何正确处理这样的情况?这很简单
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.UseWindowsService()
.ConfigureServices((hostContext, services) =>
{
services.AddHostedService<Worker>();
});
}
然后在 Worker.cs 中,我将其作为 ExecuteAsync 方法。
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
while (!stoppingToken.IsCancellationRequested)
{
_logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now);
CheckChangedClipboard();
await Task.Delay(5000, stoppingToken);
}
}