2012-06-10 70 views
0

這是我的場景.....我有一個Windows服務運行。如何顯示進程的剩餘時間

它執行3個步驟的過程,第一步是從託管應用程序獲取日期範圍,並執行一對插入,更新和表格創建,在第二步中它根據日期範圍獲取若干記錄一個表(一些記錄)和處理這些每個條目並修改一些並將它們寫入文件,第三步它使用Load Data Local將步驟2中寫入的文件加載到mysql數據庫中。

我面對的問題是在於ⅰ在步驟中提到的託管應用1.應用示出了其中示出的處理時間範圍的GUI,並且自其一個耗時的過程,我需要顯示的剩餘時間在此期間,Windows服務將完成處理(我提到的所有3個步驟)。

還有一件事客戶端網絡速度可能會有所不同。 關於如何解決這種情況的任何想法。 我正在使用C#asp.net編寫這個應用程序。

回答

2

指示剩餘時間的唯一方法是採樣。

措施的行動,並根據結果給出一個未來行動的估計。

你不能給一個準確的剩餘時間跨度,因爲行動將始終以一個不同的時間量。

另一種方式是通過不說明剩餘時間,但通過闡明多少步迄今已執行。這要求您輪詢服務器的狀態,以便您可能需要通過設置會話變量來保持服務器上的狀態。

+0

計算可以通過先ping服務器知道響應時間可以做到,那麼有,你要取數據的大小的估計。使用這些值來計算估計的時間。其次,不是顯示完整的時間,而是顯示當前正在進行的步驟的估計時間,並給出一個可以讓用戶自己做出近似估計的百分比。人類心理學;) –

+1

@KiNGPiN - 是的,這是一個這樣做的方式,但它可能仍然是錯誤的,由於服務器負載和併發性。這將永遠是一個估計。 –