public void UpdateList() { if (m_lvUsers.InvokeRequired) { UpdateListCallback d = new UpdateListCallback(UpdateList); m_lvUsers.Invoke(d); } else { foreach (Peer item in Peers) { ListViewItem test = m_lvUsers.FindItemWithText(item.CallSign); if (test == null) { int Status = 0; if (item.Disabled) { Status = 4; } ListViewItem P = new ListViewItem(item.CallSign, Status); P.SubItems.Add(new ListViewItem.ListViewSubItem(P, "")); m_lvUsers.Items.Add(P); m_lvUsers.Update(); } } for (int i = m_lvUsers.Items.Count - 1; i >= 0; i--) { Peer test = Peers.Find(x => x.CallSign == m_lvUsers.Items[i].Text); if (test == null) { m_lvUsers.Items.RemoveAt(i); m_lvUsers.Update(); } } } }