如何在 C# 中安排重复任务以特定时间间隔运行?

问题描述 投票:0回答:1

我想在 C# 中设置一个定期执行的任务,例如每小时执行一次。我怎样才能做到这一点?

更新:

感谢您的帮助。经过一些研究后,我发现我可以通过使用 Hangfire 来实现重复性工作。这种方法不需要 Windows 服务或单独的进程,并且实施起来非常简单。如果有人遇到类似问题,我建议尝试一下。

Hangfire 文档:https://www.hangfire.io/

c# asp.net-core asp.net-web-api hangfire recurring-events
1个回答
2
投票

您可以实现作为托管服务运行的后台任务,请参阅 Microsoft 的以下示例

总结:

  • 在配置服务(依赖注入)的地方添加后台任务,例如
    services.AddHostedService<MyDataFetcher>();
  • 实现MyDataFetcher类,并使其继承自IHostedService和IDisposable,例如:
    public class MyDataFetcher : IHostedService, IDisposable
  • 确保您的服务始终开启(并且在不使用时不会进入睡眠状态)
© www.soinside.com 2019 - 2024. All rights reserved.