3000 を超える多くの項目を入力する ListView があります。これには最大 15 秒かかる場合があります。アイテムを追加するたびに、これまでに追加されたアイテムの数を示すラベルを更新したいと考えています。そのために、次のコードを使用します。
foreach (FileInfo f in dir.GetFiles("*.*", SearchOption.AllDirectories))
{
DateTime dt = GetDateTakenFromImage(Path.Combine(f.Directory.ToString(), f.Name));
count++;
labelLoadedLeft.Text = "Loading " + count + " files so far";
ListViewItem lSingleItem = lv.Items.Add(f.Name);
lSingleItem.SubItems.Add(dt.ToString("dd MMMM yyyy"));
lSingleItem.Tag = Path.Combine(f.Directory.ToString(), f.Name);
}
残念ながら、すべてのアイテムが読み込まれるまで、ラベルは表示されません。
これは、UI スレッドで長い操作を行っているという事実と関係があることを理解しており、おそらくバックグラウンドワーカーを使用して作業を行う必要があります。
バックグラウンドワーカーの使用方法に関する適切で簡単な例を知っている人はいますか? これまでに発見したことは、私には複雑すぎるか、複雑すぎます。
ありがとうございました
クルーズ