无返回类型调用

delegate void SetListViewItem(EndPoint ep);

private void AddToListview(EndPoint ep)

{

     ListViewItem lvi=new ListViewItem();

     lvi.Text=((IPEndPoint)ep).Address.ToString();

     lvi.SubItems.add(((IPEndPoint)ep).Port.ToString());

     lvi.SubItems.Add("UnKnow");

     if(this.listView1.InvokeRequired)

      {

            SetListViewItem d=new SetListViewItem(AddToListView);

            this.Invoke(d,new object[] {ep});

       }

      else

       {

            listView1.Items.Add(lvi);

        }

}

 

返回类型调用

delegate ListViewItem SetListViewItem(EndPoint ep);   

  •         private ListViewItem AddToListView(EndPoint ep)   
  •         {   
  •             ListViewItem lvi = new ListViewItem();   
  •             lvi.Text = ((IPEndPoint)ep).Address.ToString();   
  •             lvi.SubItems.Add(((IPEndPoint)ep).Port.ToString());   
  •             lvi.SubItems.Add("Unknow");   
  •             lvi.SubItems.Add("Unknow");   
  •             lvi.SubItems.Add("Unknow");   
  •             lvi.SubItems.Add("Unknow");   
  •   
  •             if (this.listView1.InvokeRequired)   
  •             {   
  •                 SetListViewItem d = new SetListViewItem(AddToListView);   
  •                 return (ListViewItem)this.Invoke(d, new object[] { ep });   
  •             }   
  •   
  •             return listView1.Items.Add(lvi);   
  •         }  
  •