我同时启动了4个后台线程,每个线程执行结束后就触发OnAddItem将所生成的记录插入listview这样写的
private void OnAddItem(List<AccountTemp> accounts, Conversion conversion)
{
if (lvUndownload.InvokeRequired)
{
this.Invoke(new ThreadStart(delegate()
{
this.GenrateListViewData(accounts, conversion);
}));
}
else
{
this.GenrateListViewData(accounts, conversion);
}
}但是总是在this.invoke这里就抱错。。
InvalidArgument=Value of '0' is not valid for 'index'.是不是多个线程之间互相影响了呢? 请问这个问题怎么解决呢。谢谢
Parameter name: index
private void OnAddItem(List<AccountTemp> accounts, Conversion conversion)
{
if (lvUndownload.InvokeRequired)
{
this.Invoke(new ThreadStart(delegate()
{
this.GenrateListViewData(accounts, conversion);
}));
}
else
{
this.GenrateListViewData(accounts, conversion);
}
}但是总是在this.invoke这里就抱错。。
InvalidArgument=Value of '0' is not valid for 'index'.是不是多个线程之间互相影响了呢? 请问这个问题怎么解决呢。谢谢
Parameter name: index
開啟線程的方法如下:
Thread thread=new Thread(new ThreadStart(方法名));
thread.Start();
foreach (AccountTemp account in accounts)
{
ListViewItem item = new ListViewItem(conversion.Group);
item.Text = account.AccountName;
item.SubItems.Add(account.UserName);
item.SubItems.Add(conversion.Group.Header);
lvUndownload.Items.Add(item);
} lvUndownload.EndUpdate();