每分钟都会有一些C#方法调用(asp.net Web API Web)

时间:2019-01-15 10:14:19

标签: c# system.reactive

我必须每分钟运行一次C#方法。我确实为计时器创建了DateTimeOffset dt = DateTimeOffset.FromUnixTimeSeconds(utcNow); 并每1分钟调用一次,而我在类构造函数中使用的这段代码。还有其他解决方案吗?

observable

1 个答案:

答案 0 :(得分:1)

在我看来,这就是您所需要的:

.as-console-wrapper { max-height: 100% !important; top: 0; }

请记住,这会随着时间的流逝而漂移,不会在每一分钟触发。您需要每次重新调整。使用public void Test() { IObservable<Unit> timer = Observable .Defer(() => { var now = DateTimeOffset.Now; var result = new DateTimeOffset(now.Year, now.Month, now.Day, now.Hour, now.Minute + 1, 0, now.Offset); return Observable.Timer(result, TimeSpan.FromMinutes(1.0)); }) .SelectMany(x => Observable.FromAsync(() => InvokeMethod())); timer.Subscribe(); } 会更好。


Observable.Generate