2013-07-20 29 views
0

我們正在開發一個定製調度器類,它應該能夠定期調用任務。.NET調度器類架構

我們正在考慮兩種可能的方法:

  1. 對於每一個任務,即有X秒期間,以間隔相等的創建自己的定時器任務的期限,或

  2. 創建一個定時器,並在每個tick上重新計算其間隔時間,迭代所有任務並找到最接近的時間?

第一種方法似乎更簡單直接,但我不知道創建10或20個定時器是否昂貴。

您如何看待,從性能角度來看哪個更好?

+0

多少任務,我們談論的,並且你希望他們能夠同時運行? (你的第二種方法是不允許的。) –

+0

那麼,我們正在談論一些糟糕的幾十項任務。任務應該能夠同時運行。當定時器的回調執行很長時間,比定時器間隔大時,下一個定時器是否會發生? –

+0

我已經在接口IScheduler背後實現了不同的方式。在某些情況下,一個簡單的計時器每X毫秒檢查任務就足夠了。 – erikH

回答

1

如何使用Quartz.net等現有的日程安排庫?

Quartz.NET是一個功能齊全的開源作業調度系統,可以使用從最小的應用程序到大型企業系統的 。 Quartz.NET是一個用C#編寫的純.NET庫,並且是一個非常具有代表性的開源Java作業調度框架Quartz的 的端口。這個 項目很大程度上歸功於原來的Java項目,它的父親James House和項目貢獻者。

http://quartznet.sourceforge.net/

+0

我懷疑*在這種情況下,需求非常簡單,BCL中的其中一個Timer類足夠好。 –

+0

我想過使用這個庫,但我們的調度程序不是由我編寫的,而這個其他人想要完全自己實現它。 –