現在の操作を表示するソートアプリケーションを作成する必要があります。
私はそのようにしました:UIの反応を伴うバックグラウンドでの操作
私はint
のコレクションを持っています。その中には、ソートアルゴリズムとイベント「ステップ」があり、2つの引数 '操作'が必要です。私は何かをする要素のint[]
を比較、並べ替えなど。
並べ替えが特定の項目で何かを行っている場合は、ListView
の項目の背景を変更したいと思います。 '250 ms点滅'。そのような何か:
listView1.Items[1].BackColor = Color.LightGreen;
listView1.Items[2].BackColor = Color.LightGreen;
Thread.Sleep(250);
for (int i = 0; i < args.Length; i++)
{
listView1.Items[i].BackColor = Color.White;
}
しかし、私は、ソートを開始しようとしているとき、UIが凍結され、数秒後にそれがSortedCollection
として表示されます。
私の質問は次のとおりです。
ソート中にUIに「ライブ」アクションを表示するにはどうすればよいですか?
あなたの質問はあまり明確ではありません。なぜあなたがThread.Sleepを使うのか説明してください。 –
色の変化をユーザーに見せるためです。その後、色が白に戻ります。このコードは、すべてのコードのほんの一部です。それが私の問題だと私は思う。 – Variat
これがWindowsフォームの場合は、Application.DoEventsを呼び出すことができます。 WPFの場合は、アニメーションをスタイルに実装する必要があります。 – hoodaticus