私は映画、タイトル、長さ、最後にアクセスした時間を探してネットワークをクロールするアプリケーションを持っています。ネットワーク上には多くのコンピュータがあるので、これにはしばらく時間がかかりますし、リストビューをリアルタイムで更新したいと思います。私がこれまでに持っていたことは何もしていないが、それは全く役に立たない。Cでリアルタイムでリストビューの更新を行う方法
private void PopulateListView()
{
this.listView1.SuspendLayout();
listView1.Items.Clear();
// go thru list of movies to add
foreach (string movie in listviewMovieList)
{
ListViewItem item1 = new ListViewItem(movie);
listView1.Items.AddRange(new ListViewItem[] { item1 });
}
this.listView1.ResumeLayout();
}
これは、メソッドProgressChanged私の背景労働者が呼び出されます:
private void bw_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
string movie = (string)e.UserState;
if (movie != null)
{
listviewMovieList.Add(movie);
PopulateListView();
}
this.progressBar1.Increment(e.ProgressPercentage);
}
このWPFまたはWinFormsですか?また、PopulateListView()が実際に実行時に呼び出されていることを確認できますか? –
@GregそれはWinForms - SuspendLayout \ ResumeLayoutです。 –
それがWinFormsの –