長時間実行中のルーチンで頻繁に更新する単純なステータスラベルがあります。ルーチンはタイマー上にあり、したがって別のスレッド上にあるので、私はCross-thread operation not valid
エラーを受け取ります。私はこのようなSOの修正を見つけました:毎回呼び出さずに別のスレッドによって作成されたオブジェクトにアクセスしますか?
lblQuery1Status.Invoke(new Action(delegate
{
lblQuery1Status.Text = "Status: Publishing";
}));
しかし、このコントロールのテキストをルーチン中に7回または8回更新します。これを行うためのより効率的な方法や簡単な方法がありますか?
それについては何が非効率ですか? 7〜8回する必要がある場合は、statusを文字列入力と呼ぶメソッドに貼り付けます。私はあなたの代理人を見ています。私は本当にsnarkyになろうとしていません - あなたが効率的だと言うときにあなたがコミュニケーションしているものについて興味があるのですか? –
私はそれにアクセスする必要があるたびに新しいスレッドで1回呼び出すことができるかどうか疑問に思っています。私は '.net'と特にスレッド化するのが初めてです。 –