2012-02-04 49 views
3

我一直在試圖設計對重複性事件的支持(就像你會在Outlook中看到的,或任務管理器等)。我一直在挖掘谷歌和StackOverflow,但沒有太多的運氣。想知道是否有人有任何指針或資源。c#循環事件(如日曆)

'要求'

  • 支持日常事件(發生星期一,星期二,星期四上午10個每15分鐘)
  • 每月事件

任何更多的是一個獎金,但這些將是最低限度。

謝謝!

+1

你想要一個前景解決方案或只是一些管理重複事件的東西?事件的一些例子會有所幫助。 – EKet 2012-02-04 00:58:43

回答

1

我用什麼,這是內置的的TaskScheduler。這裏有一個易於使用的包裝:http://taskscheduler.codeplex.com/

如果您還沒有,搜索開始菜單中的任務計劃程序並使用它。這個包裝器基本上可以讓你以編程方式盡你所能地使用GUI。

+1

我喜歡這個想法,並將其標記爲答案,因爲我認爲它是領先的方向我想去 - 謝謝! – 2012-02-06 16:08:01

-1

如果你正在試圖解決的問題是,你只能這樣的事件做出響應您的程序運行時,這是真的。這個問題的最實際的解決方案是在後臺運行你的程序,通常在任務欄上有一個通知圖標。您可以使用現有的框架(請參閱roken的答案),設置計時器(研究System.Threading.Timer),或定期比較DateTime.Now和各種各樣的事件DateTime對象。在後兩種情況下,您需要序列化DateTime對象以將它們保存到會話之間的磁盤中。

+0

謝謝!我正在尋找方法來追蹤事件(即創建一個事件的記錄並將其保存在數據庫中(包括重現信息)。我剛剛下載了Quartz,我現在要去看看。 – 2012-02-04 01:13:52

+0

我可能會去通過使用BinaryFormatter序列化Dictionary/List of DateTime對象來解決問題,然後每次啓動程序時設置定時器。 – Zenexer 2012-02-04 01:17:22

1

檢查iCal WikiiCal RFC(尤其是「持續時間」和「復發規則」部分)。我認爲這會爲你提供一些很好的起點,以表達這樣的事件。從RFC

摘錄:

... For example "the last work day of the month" could be represented as: 
    FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-1 
+0

有沒有一個數據庫模式來幫助堅持和檢索這種信息 – aggie 2014-11-20 04:06:23