我有一个 ListView,其中填充了很多项目,超过 3000 个。这可能需要 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);
}
不幸的是,直到所有项目都已加载,标签才会显示。
我知道这与我在 thr UI 线程上执行冗长的操作有关,并且我可能应该使用后台工作人员来完成这项工作。
有谁知道如何使用后台工作者的好和简单的例子。到目前为止,我发现的东西对我来说太复杂或太复杂了。
谢谢
克鲁兹