-1

20秒ごとにcomポート(シリアル通信)を介してハードウェアデバイスをポーリングするためにSystem.timer.timerクラスを使用しています.UIクラスからtimer.start()を開始しています.timer_elapse()イベントもUIクラスにあります。

私の質問は、ui スレッド以外のスレッドまたは同じスレッドで実行される timer_elapse ですか? 私の懸念は、timer_elapse から UI に何かを更新する方法ではなく、パフォーマンスに関連するものです。(.net 3.5 フレームワーク)

timer_elapseイベントのためにUIがフリーズしないように、UIスレッドの一部である場合、他のスレッドでそれを取得するにはどうすればよいですか。

私は C# の初心者なので、フィードバックは非常に重要です。

4

2 に答える 2

0

timer_elapseUI とは別のスレッドで実行されます。UI コンポーネントを参照したい場合timer_elapseは、Dispatcher を使用する必要があります。

    Dispatcher.BeginInvoke(new Action(() =>
    {
        // UI code
    }));
于 2013-09-18T16:37:22.080 に答える