我試圖用C#/ .NET暫停時間。我可以設定時間,但我想設定暫停時間。Windows中的暫停時間
有誰知道如何做到這一點?
命令提示符的建議也是有幫助的。
我正在使用Visual Studio 2010,如果重要。
我試圖用C#/ .NET暫停時間。我可以設定時間,但我想設定暫停時間。Windows中的暫停時間
有誰知道如何做到這一點?
命令提示符的建議也是有幫助的。
我正在使用Visual Studio 2010,如果重要。
@ Marc - 這是我需要凍結的系統時間,我需要檢查本週沒有輸入的報告,而不是下週,我在下週前的23:59:59檢查它。這是檢查系統不認爲它是下一週。此過程需要1秒以上的時間來檢查自動化測試中的報告。 – chrissygormley 2010-08-05 12:23:59
您不需要凍結系統時間來執行此操作。這也不會是可靠的,因爲如果凍結系統時間需要一秒多的時間呢?要麼提前運行該過程,要麼改善您的時間處理代碼。如果代碼運行的時間不足一個小時,那麼你應該看看前一週。只需將其添加到您的代碼中。 – 2010-08-05 12:32:13
@chrissygormley,正如其他人所指出的那樣,最好的辦法是按時分離所有的依賴關係,這樣你就可以模擬測試的時序行爲。這並不容易,特別是如果你有一個遺留的代碼庫。我個人喜歡有一個ITimerService提供各種與時間有關的函數(報告DateTime.Now,時間回調,測量經過時間等),我可以注入需要時間意識的類中。 – 2010-08-05 13:43:01
我想你是在談論停止窗口的時間,我想這是一個不是Windows的功能來做到這一點。 實際上你試圖達到什麼目標(除了休息窗口)可能有其他解決方案。
@ MikeG - 我在特定的時間編寫測試,它需要與測試運行時保持一致。這是邊界測試,我會假設,因爲你可以改變時間到過去,應該沒有問題,暫停Windows計時器。 – chrissygormley 2010-08-05 12:16:14
將時鐘模擬爲一個可替換的假類,它可以在整個測試中返回相同的值。 – 2010-08-05 12:17:36
嗯,我不確定你爲什麼要這麼做,但是,由於在Windows中沒有'PauseTime'函數,所以你不需要一個標記當前的服務時間,然後連續將系統時間設置爲該開始時間。這應該達到保持系統時間一致的效果。
@ Kazar - 這就是我在那一刻所做的,但我希望有一種方法來凍結它。無論如何感謝 – chrissygormley 2010-08-05 12:17:29
如果您需要查找某些調試工作的經過時間,請參見System.Diagnotics.Stopwatch
類。 page on MSDN有關於如何使用它的一些體面的例子。我不知道你正在尋找什麼類型的精度,所以如果你正在尋找高性能的時序診斷,那麼這可能不是你要使用的類。
希望這會有所幫助!
你的意思是暫停'定時器'?我認爲只有超人可以暫停時間 - 或者他只是讓時間倒退? :) – 2010-08-05 12:07:19
@DHoerster - 查克諾里斯呢? :) – Giorgi 2010-08-05 12:12:44
你爲什麼要這麼做? – 2010-08-05 12:14:01