我是c#的新手。
问题:
我想在计时器中运行一个方法,但该方法返回/需要的参数不在计时器的定时器集中。
原因:定期调用该方法(EPOC Emotiv耳机),我希望每秒只调用一次。
通过函数调用(我认为):
EmoEngine.Instance.CognitivEmoStateUpdated + = new EmoEngine.CognitivEmoStateUpdatedEventHandler(Instance_CognitivEmoStateUpdated);
运行的方法(太常规)是:
void Instance_CognitivEmoStateUpdated(object sender,EmoStateUpdatedEventArgs e) { EmoState es = e.emoState; EdkDll.EE_CognitivAction_t currentAction = es.CognitivGetCurrentAction(); }
sotware已经附带一个计时器运行来每秒处理事件:
private void timer1_Tick(object sender,EventArgs e) { engine.ProcessEvents(); }
我希望我可以简单地将方法aboce(Instance_Cogn ...)放在计时器中,我认为这会解决问题 ..
请问最好的方法是什么?
很多人。
答案 0 :(得分:1)
使用System.Threading.Timer而不是Timer Control。 线程的时间类使您能够传递参数并在代码中使用函数的输出。
// Create the delegate that invokes methods for the timer.
TimerCallback timerDelegate = new TimerCallback(CheckStatus);
// Create a timer that waits one second, then invokes every second.
Timer timer = new Timer(timerDelegate, arguments,1000, 1000);