2012-12-25 52 views
0

我有一個程序以圖表的形式顯示一些信息。信息每個月都會更新,所以我需要每月檢索一次信息。我如何在Silverlight中每月運行一次方法?

我想過有一個睡眠了一個月的時間的線程,但是,我不知道這是否可行。有人可以提出一個更好的方法來做到這一點?

謝謝!

回答

2

您可以將上次訪問的日期存儲在文件/表中,然後在程序啓動時每天輪詢文件/表。如果超過1個月(30/31天),請重新獲取您的數據。

在.NET中使用DateTime類來幫助您。在兩個日期之間還使用DateTime.Subtract()

+0

而不是文件/表,我可以只使用程序中的變量存儲數據檢索方法被調用的日期?然後比較這個變量,直到30天過去了? – rage

+0

@rage不要那樣做。你永遠不知道什麼時候你的程序可以關閉 - 因此它是一個好主意,堅持臨界值在文件/表 –

+0

哦,好的,謝謝你的建議,我會嘗試這個,當我有機會。 – rage

0

我在想你在這裏做什麼。這聽起來很奇怪。

那麼,信息從哪裏來?數據庫?如果是這樣,你可以計算正常拉數據時的月份值嗎?或者您可以在SQL Agent中運行一項作業,每月使用計算值更新一個表格。

真的可以用windows來設置一個具有類似概念的計劃任務。它每月運行一次並下載新數據。

但基本上你正在試圖做可以幫助我們給你更好的答案是什麼一點點更多信息..

+0

我正在運行查詢以從數據庫中獲取信息。然後我拉動結果並將它們繪製到條形圖上。數據庫中的內容會定期更改(與客戶相關的數據),並且我希望我的圖表每個月都能更新,而無需再次實際運行該程序。 該程序產生的圖表將在電視顯示器上供其他人使用soooo這將是很好,我可以自動執行此任務。 – rage

+0

那麼人們是否會每週24小時都要將電視機調整到這個條形圖中,以便他們每月可以看到更新一次?或者是計算機發送此饋送只是偶爾拉動條形圖? – CodeRedick

+0

電視將循環不同的圖表,我只是在其中之一。但是,圖表將在電視的24/7上。所以我的圖表可能會上升10-12秒,然後是下一個圖表,然後是下一個圖表等等,直到老闆確定電視機的不同用途。 – rage

0

,其中在啓動一個線程開始計算的時間,直到下一次讀我見過的實現時間。在線程內,它等待一個關閉事件發出信號(由應用程序觸發),超時值是以前計算的時間。一旦等待完成,如果不是由於關機事件造成的,則讀取數據。

但是,我看到的更常見的實現是使用計劃任務將數據加載到應用程序。雖然這將需要比線程版本更長的時間來實現,但它應該提供更強大的解決方案。