2014-10-06 119 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

相关问题