あなたはかなり高度なスレッド問題について話しています。組み込みのシステム制御構造を使用すると、メッセージループが完了するのを防ぐ方法がありません。別の方法を(優雅に)中断する方法があります。
ここで、この機能が非常に重要な場合は、すべてのカスタムコントロールを作成し、コントロールのペイントコード内で(もちろんスレッドセーフな方法で)ペイントする必要があるかどうかを示すブール値をチェックできます持続する。
しかし、私が暗闇の中で刺すことができれば、あなたは実際にマルチスレッドを明示的に行っていないと推測します。このような場合は、GUIをリフレッシュするプロセスが完了する前に、別のシナリオを開始することができるため、記述したシナリオは実際には実行できません(つまり、この匿名プロセスでは、別のリフレッシュ現在のものを古いものとみなします)。同じスレッド上のコードが順番に実行されるため、無関係なコードが更新を引き起こす機会はありません。
どのようにいつ再描画が行われるかの意味(Invalidate()とRefresh()の違い、このロジックへの影響など)は、おそらく本当に興味のないトピックです。ちょうどその時あなたは は現在 操作は、 UIのために(この手段を継続すべきか否かを確認 のために独自のコードを実装する必要があります、あなたがしている場合...
- は、マルチスレッドを行うことを知っています ペイントロジックのこのロジックでのカスタムコントロール)
- マルチスレッドを実行していない場合は、 は何も起こりません。
どのようなUIの種類を言う必要があります。 Windowsフォーム? Webフォーム? WPF? SilverLight?また、どのバージョンの.NET? –