2013-04-25 17 views
1

睡覺我是有點新的C#原諒我:)激活功能作爲一個特定的時間,然後X時間

什麼,我試圖做到的是類似的東西,我從控制檯 他們是2個輸入PARAMATERS所謂

smallHour bigHour

可以說smallHour = 2和bigHour = 12,

現在我想這樣做是爲了激活功能

每2小時,並每隔12小時, 總是在一個小時00分鐘。但是當bigHour被激活時,小時不應該運行。

你是否有任何idie我可以做到這一點?

它們被激活的功能就是一種「獎勵」功能,因此當bigHour事件發生時它需要阻止smallHour - 所以他們不會得到2倍獎勵。

在此先感謝,

+1

我很困惑,爲什麼你會有一個控制檯應用程序參與調度事件的參數。用這些時間間隔設置一個計劃任務會更好。 – Logarr 2013-04-25 21:35:31

+0

becouse我想讓用戶決定每個小時他想激活獎勵系統 – Dan272 2013-04-25 21:36:46

+0

也許你應該提供一些更多的細節。他們呼叫什麼功能,爲什麼較大的間隔需要阻塞較小的間隔? – Logarr 2013-04-25 21:39:05

回答

0

.NET有一個名爲System.Threading.Timer類。

一個我喜歡使用構造函數是:

public Timer(
    TimerCallback callback, 
    Object state, 
    long dueTime, 
    long period 
) 

dueTime毫秒過去了.NET會調用該委託callbackstate作爲參數。你的回調實現可以使用DateTime.Now來決定調用哪個函數。 period確定連續呼叫之間的延遲。

儘管如此,定時器回調將從線程池線程調用。您可能需要使用鎖來保護數據結構免受併發修改。

相關問題