C#中的異步調用

這個示例是在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)); 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章