我有一个事件,我将我的处理程序与它关联起来.当我编写处理程序方法时,如何知道函数采用哪些参数?
例:
// Add an event handler to be called whenever there is new color frame data
this.sensor.ColorFrameReady += this.SensorColorFrameReady;
this.sensor.AllFramesReady += this.AllFramesReady;
//handler
private void AllFramesReady(object sender, AllFramesReadyEventArgs allFramesReadyEventArgs)
{
throw new NotImplementedException();
}
Run Code Online (Sandbox Code Playgroud)
我怎么知道我的函数的参数是object sender和所有帧准备args?
我目前正在使用秒表作为全球计时器.我有主线程运行,另一个线程和事件方法.主线程启动另一个线程,事件方法由事件触发.两种方法都会调用秒表并获得时间.问题是,时间不一致:从主线程:START REC AT 9282 STOp REC AT 19290
来自另一个线程:音频1音频304音频354音频404音频444音频494音频544音频594
来自事件方法:视频4视频5视频29视频61视频97视频129视频161
我不明白为什么如果我在9282开始我的rec,另外两个调用秒表的函数会有从零开始的计时器?这是线程相关的问题吗?我怎样才能解决这个问题?谢谢
更新:*********
当我保存我的帧我改为:long a = relogio.EllapseMilliseconds我打印出这个值,它正常,如预期的那样.但是当我打印存储在列表中的值时,它们从开始时开始.奇怪吧?对于所有的麻烦感到厌烦,我在没有开始的时候打印它,为什么他们都试图从零开始!很多感谢和抱歉!
主线程
private void Start_Recording_Click(object sender, RoutedEventArgs e)
{
rec_starting_time = relogio.ElapsedMilliseconds;
Console.WriteLine("START REC AT " + rec_starting_time);
write_stream.enableRecording();
Thread a = new Thread(scheduleAudioVideoFramePicks);
a.Start();
Run Code Online (Sandbox Code Playgroud)
scheduleAudioVideoFramePicks - 这个线程只计算时间,所以我知道什么时候停止
//while....
if (rec_starting_time + time_Actual > rec_starting_time+recording_time * 1000)//1000 - 1s = 1000ms
{
totalRecordingTimeElapsed = true;
write_stream.disableRecording();
Console.WriteLine("STOp REC AT " + relogio.ElapsedMilliseconds);
}
//end while
lock (list_audio)
{
int …Run Code Online (Sandbox Code Playgroud)