2012-01-11 3 views
0

小節が何を言うか、いくつかの条件に基づいてキャンバスにオブジェクトを追加するのに時間がかかります。オブジェクトが追加されたときにオブジェクトを表示したいのですが、ループが完了した後にオブジェクトが表示されますか?なぜ誰にどのように私はこれを修正することができます知っていますか?forループにキャンバス子を追加すると、ループが終了するまで表示されません。

:textbox.textプロパティも更新されません。

答えて

0

UIスレッドを使用中にUIが更新されない場合、UIスレッドを制御できるように戻す必要があります。

可能であれば、長時間実行する操作をバックグラウンドスレッドに移動してください。たとえば、BackgroundWorkerを使用して、頻繁にUIを更新してください。これにより、より応答性の高いUIが得られるはずです。

本当にの場合、UIスレッドで長時間の作業が必要になる場合があります(レンダリングに時間がかかる多数のコントロールを追加するなど)。管理可能な部分に分割する必要があります。 CompositionTarget.RenderingイベントでUIがレンダリングされたことを知り、続行できるようになるまで待つことができます。できるだけバックグラウンドスレッドに作業をオフロードする方がはるかに優れています。

関連する問題