//文件读取和在线捕获都调用这一个 private void packetArrival(object sender, CaptureEventArgs e) { Packet p = Packet.Parse(e.Packet.Data);//此处将包已经解码完毕 //声明一个ListView的各个项 int itemIndex = listViewMain.Items.Count; DateTime dateTime = e.Packet.Timeval.Date.ToLocalTime(); string time = dateTime.TimeOfDay.ToString(); string src = String.Empty; string dest = string.Empty; string protocol = String.Empty; string description = String.Empty; //传引用,填充信息 SharpShark.utility.getInfoFromPacket(p, ref src, ref dest, ref protocol, ref description); //将数据包保存到内存中 packetArray[itemIndex] = p; ListViewItem item = SharpShark.utility.parseToItem(itemIndex, time, src, dest, protocol, description); //增加一个ListItem项 if (this.listViewMain.InvokeRequired) { delegateAddItem add = new delegateAddItem(addItem); this.Invoke(add, itemIndex, item); } else { this.listViewMain.Items.Insert(itemIndex, item); } }