我有一个正在从多个线程更新的 listView,其中显示了线程状态和 id。当一个线程结束时,该项目被删除。
我的问题是我用来更新我的 listView 的方式是使用 listViews ID(定位我希望更新的子项)。现在,随着 listView 项目开始被删除,我遇到了问题,因为特定线程的 ID 已更改。
这是我目前用于更新和删除的代码:
private void AddToListViewThread(string user, string status, int threadNumber)
{
Invoke(new MethodInvoker(
delegate
{
listView2.BeginUpdate();
this.listView2.Items[threadNumber].SubItems[1].Text = user;
this.listView2.Items[threadNumber].SubItems[2].Text = status;
listView2.EndUpdate();
}
));
}
private void RemoveFromListViewThread(int threadNumber)
{
Invoke(new
MethodInvoker(
delegate
{
listView2.BeginUpdate();
this.listView2.Items.RemoveAt(threadNumber);
listView2.EndUpdate();
}
));
}
我现在明白我不能使用 threadNumber 作为项目索引(因为项目被删除)还有其他方法可以实现吗?也许通过定位“用户”子项?然后从中获取子项?