私のC#プログラムでは、PanelにOnPaint()を1秒に1回呼び出して、現在の設定に基づいてグラフィック描画を実行させようとしています。メイン フォームは、System.Timers.Timer を使用して、Panel クラスの更新メソッドを呼び出します。更新メソッドは、Refresh() 呼び出しで終了します。しかし、実行すると、Refresh 行を参照する InvalidOperationExcetpion が常に表示され、「クロススレッド操作が無効です: コントロールが作成されたスレッド以外のスレッドからアクセスされました」と表示されます。また、この MSDN ページを参照してください: http://msdn.microsoft.com/en-us/library/ms171728.aspx
しかし、そのページのすべての例は、新しいスレッドを特定のフォームイベントに結び付けることを示唆しているようです. マウスクリックや同様のイベントではなく、タイマーに基づいて更新しています。別のスレッドで更新を実行するのは良いことのように思えますが、どうすればよいかわかりません (Java は得意ですが、C# 初心者です)。