1
假設以下情形:
我有一個視圖模型,應該在特定延遲後自動關閉自身。安排在特定對象實例上工作的一次性工作
事情是這樣的:
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());
顯然是行不通的,因爲以下原因,:
- 存在着對
ITrigger
沒有Job
財產。 - 作業類應該是可序列化的。
問:
有沒有辦法做什麼,我想用Quartz.net做還是我試圖用它的東西,它不是設計的呢?
順便說一句:我知道this question,但對我來說,它看起來像接受的答案濫用Quartz.net和其他答案不會幫助我。
簡單的定時器怎麼樣? –
@亨克·霍特曼:當然,那會奏效。它只是有問題,它使我的視圖模型異步,很難進行單元測試。因爲我在應用程序中有其他重複的任務,所以我想過介紹一個調度程序並將它用於所有這些「稍後執行」的要求。 –