2014-10-06 118 views

回答

1

我沒有檢查的CodePlex項目,但我假設你有啓動,並通過兩種方法停止錄製的手段。一旦recordingTimeInMilis指定的時間用完,計時器將立即調用StopRecording()方法。

public class TimedRecorder 
{ 
    private const int recordingTimeInMilis = 5 * 60 * 1000; 
    private Timer m_timer; 
    public void StartRecording() 
    { 
     m_recorder.Start(); 
     m_timer = new Timer(
      StopRecording, null, recordingTimeInMilis, Timeout.Infinite); 
    } 
    public void StopRecording() 
    { 
     m_recorder.Stop(); 
     m_timer.Dispose(); 
     m_timer = null; 
    } 
} 
+0

它給出了錯誤的:爲了獲得最佳重載方法匹配「System.Threading.Timer.Timer(System.Threading.TimerCallback,對象,INT,INT)」有一些無效參數 – 2014-10-07 03:51:14

+0

是,回調需求接受一個對象作爲輸入參數。你可以把它寫成lambda,就像這樣:'... new Timer(param => StopRecording,null,recordingTimeInMilis,Timeout.Infinite)...' – Martin 2014-10-07 07:49:10

相關問題