找了好久资料,终于解决了,特此记录下来。
1 delegate void DelListHandler(string number);
/// <summary> /// 按标识删除listview内容 /// </summary> /// <param name="number">标识</param> private void DelListViewLog(string number) { for (int i = 0; i < listView1.Items.Count; i++) { if ((string)listView1.Items[i].Tag == number) { listView1.Items[i].Remove(); } } }
1 //判断对lvInfo执行的方法是否跨线程 2 if (this.listView1.InvokeRequired) 3 { 4 //把删除lvInfo订单内容的方法交给委托回调DelListHandler去处理 5 DelListHandler dellisthandler = new DelListHandler(DelListViewLog); 6 this.listView1.BeginInvoke(dellisthandler, minfo.Order); //异步去执行委托回调dellisthandler,删除lvInfo的订单内容 7 } 8 else 9 { 10 //如果执行方法不是跨线程,那么就直接执行 11 DelListViewLog(minfo.Order); 12 }