2013-12-23 45 views
0

我有接口的應用程序,我需要計算各種操作所用的時間。根據事件記錄延遲

public void Startoperation1() 
    { 
     Stopwatch stopWatch1 = new Stopwatch(); 
     stopWatch.Start(); 
    } 

    public void StopOperation1() 
    { 
    stopWatch1.Stop(); 


    if(stopWatch1.TimeElapsed > tsActualTimeNeededForOperation1) 
    { 
    MessageBox.Show("Delay Occured in operation 1:"+ (stopWatch1.TimeElapsed - tsActualTimeNeededForOperation1).ToString()); 
    //Log to database about the delay 
    } 

    } 

啓動和停止操作由獨立的類提出。
像這樣有25個操作。我必須使用25個秒錶,並且對於所有操作,我必須編寫50種記錄延遲的方法。
任何想法減少秒錶的使用代碼和否(如使用系統的時間戳),即一種通用的方法?

+1

執行它們一個如果你的代碼同步,那麼你不需要很多Stopwatch實例。您可以在秒錶正在運行時隨時閱讀Elapsed屬性,即每次需要時間測量時都不需要調用Stop()。這隻有在您的呼叫以同步方式完成時纔有意義。 – CodeWeed

+0

當用戶沒有機會找出**爲什麼會花費更長時間時,請不要高估「花費時間超出預期」的消息的價值。使用分析器測量基線,編寫系統要求以確保在您發佈代碼後可以重現此結果。 –

+0

那麼你寫25 * 50的方法來記錄你的信息?他們的50種方法在操作上是否一致? – WiiMaxx

回答

1

你可以一次創建多個對象....然後使用循環..... 如..一個....

stopwatch stopwatch1[]=new stopwatch[50]; 
for 
{ 
//... 

}