バックグラウンド スレッドで毎秒 2000 の整数を生成するサンプル プログラムを作成しました。終了すると、ランダムに生成されたデータから GUI にグラフを描画するイベントが発生します (実際の測定をシミュレートするために、スレッド内でスリープ状態になっています)。 )。
private void SetChart(System.Windows.Forms.DataVisualization.Charting.Series series)
{
if (InvokeRequired)
{
SetChartCallback d = new SetChartCallback(SetChart);
this.Invoke(d, new object[] { series });
}
else
{
chart1.Series[0] = series;
chart1.Series[0].Name = "Generated Data";
}
}
MSDN サイトでこのアプローチを見つけました。正常に動作していますが、唯一の問題は、アプリケーションを閉じるときです。ときどきエラー メッセージが表示されます。
破棄されたオブジェクトにアクセスできません。
オブジェクト名: 'Form1'。
プログラムを閉じると、すべての要素が破棄されます。このエラーが発生しないようにするにはどうすればよいですか?