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