假设以下情况:
我有一个视图模型,应该在特定延迟后自动关闭。
这样的事情:
public AutoCloseViewModel : ViewModelBase
{
public void Close()
{
/* perform actions necessary to close
the view model and its associated view */
}
protected override OnActivate()
{
// schedule job that calls Close on this instance, something like
var trigger = TriggerBuilder.Create()...;
trigger.Job = new DelegateJob(() => Close()); // <----
scheduler.ScheduleJob(trigger);
}
}
由于以下原因,行trigger.Job = new DelegateJob(() => Close());
显然不起作用:
Job
上没有ITrigger
属性。 问题:
有没有办法做我想用Quartz.net做的事情,还是我试图将它用于不适合的东西?
答案 0 :(得分:0)
对于这种情况,我同意计时器应该是首选方式。我认为为此目的的调度程序会使事情变得复杂。
使用调度程序或计时器都会产生异步。
如果您确实想使用调度程序,可以使用[Messenger]与viewmodel进行通信,以发送给定作业完成的消息,并在viewmodel中注册该消息。1