0

私はC#が初めてです。

問題:

タイマー内でメソッドを実行したいのですが、メソッドはタイマーの引数セットにない引数を返します/必要とします。

理由: このメソッドは定期的に呼び出されます (EPOC Emotiv ヘッドセット)。

関数によって呼び出されます(私は思います):

EmoEngine.Instance.CognitivEmoStateUpdated += 新しい EmoEngine.CognitivEmoStateUpdatedEventHandler(Instance_CognitivEmoStateUpdated);

(あまりにも定期的に)実行されるメソッドは次のとおりです。

void Instance_CognitivEmoStateUpdated(オブジェクト送信者, EmoStateUpdatedEventArgs e) { EmoState es = e.emoState; EdkDll.EE_CognitivAction_t currentAction = es.CognitivGetCurrentAction(); }

ソフトウェアには、毎秒イベントを処理するためのタイマー実行が既に付属しています。

private void timer1_Tick(オブジェクト送信者, EventArgs e) { engine.ProcessEvents(); }

メソッド aboce (Instance_Cogn...) をタイマーに単純に配置できたらいいのにと思いますが、それで問題が解決すると思います..

これを行う最善の方法は何ですか?

多くのthx。

4

1 に答える 1

1

タイマー コントロールの代わりに System.Threading.Timer を使用します。スレッド化の時間クラスは、引数を渡し、コードで関数の出力を使用する機能を提供します。

   // 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 に答える