0

我是 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(); }

该软件已经带有一个计时器运行以每秒处理事件:

private void timer1_Tick(object sender, EventArgs e) { engine.ProcessEvents(); }

我希望我可以简单地将方法 aboce (Instance_Cogn...) 放在计时器中,我认为这样可以解决问题..

请问最好的方法是什么?

很多谢谢。

4

1 回答 1

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);

参考示例代码

于 2012-05-14T15:16:46.680 回答