重复任务的首选方法是什么?
本文关键字:方法 是什么 任务 | 更新日期: 2023-09-27 18:12:21
我通常这样设置重复的任务,比如GUI更新等:
MonitorTimer = new System.Threading.Timer(new TimerCallback(Monitor), null, 1000, 2000);
我最近开始用
开始任务 Task.Factory.StartNew(() =>
{
MyApp();
});
现在创建重复任务的首选方法是什么?我在StartNew中看不到任何明显的选项
我更喜欢使用微软的响应式框架。然后我可以这样做:
var subscription =
Observable
.Interval(TimeSpan.FromSeconds(1.0))
.ObserveOn(this) /* this is the current form */
.Subscribe(() =>
{
MyApp();
});
处理所有UI线程的封送、定时和方法的调用。
你可以像这样取消它:
subscription.Dispose();
继续使用System.Threading.Timer。或者,您可以使用Wait在专用线程中等待事件,但是我能想到的理由很少。