BackgroundWorker ProgressChanged によって UI が更新されています。プログレス バーと、バックグラウンド ワーカーによって処理されている各アイテムのファイル名を表示するリストビューがあります。
新しいファイルの場合にのみリストビューにアイテムを追加したいので、リストビューの最後のアイテムと現在のファイル名の比較を使用しようとしました。
ただし、これは TargetInvocation エラーをスローします。
void m_oWorker_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
var r = Enumerable.Empty<ListViewItem>();
if (this.listView1.Items.Count > 0)
r = this.listView1.Items.OfType<ListViewItem>();
var last = r.LastOrDefault();
if (last.Text != CurrentTrack.Name)
{
ListViewItem LVI = new ListViewItem(currentTrack.Name);
LVI.SubItems.Add(keywords);
LVI.SubItems.Add("Updated");
listView1.Items.Add(LVI);
listView1.TopItem = LVI;
listView1.EnsureVisible(listView1.Items.Count - 1);
}
progressBar1.Value = e.ProgressPercentage;
lblStatus.Text = "Processing......" + progressBar1.Value.ToString() + "%";
}
これを達成することは可能ですか?