这个示例是在Winform里做的,大家可以参考:

  1. //定义声明委托 
  2. private delegate string returnresult(int i, long b); 
  3. /// <summary> 
  4. /// 同步执行事件 
  5. /// </summary> 
  6. private void button3_Click(object sender, EventArgs e) 
  7.     returnresult sl = sss; 
  8.     string ssa = sl.Invoke(0, 1000000101);//只有等待 
  9.     MessageBox.Show(ssa); 
  10. private string sss(int a, long b) 
  11.     long s = 0; 
  12.     for (long o = a; o < b; o++) 
  13.     { 
  14.         s += o; 
  15.     } 
  16.     return s.ToString().Trim(); 
  17. /// <summary> 
  18. /// 异步执行时间 
  19. /// </summary> 
  20. private void button5_Click(object sender, EventArgs e) 
  21.     returnresult dd = sss; 
  22.     AsyncCallback sas = new AsyncCallback(asiresult); 
  23.     dd.BeginInvoke(0, 1000000101, sas, dd);//照样运行 
  24.     MessageBox.Show("照样运行!!!"); 
  25. /// <summary> 
  26. /// 回调函数 
  27. /// </summary> 
  28. /// <param name="asa"></param> 
  29. private void asiresult(IAsyncResult asa) 
  30.     returnresult aass = asa.AsyncState as returnresult; 
  31.     MessageBox.Show(aass.EndInvoke(asa));