程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> 淺談.NET下的多線程和並行計算(十一).NET異步編程模型基礎 下

淺談.NET下的多線程和並行計算(十一).NET異步編程模型基礎 下

編輯:關於ASP.NET

上次我們說了,要進行多線程編程,我們可以使用最原始的方式也是最靈活的方式進行,那就是 Thread(ThreadPool)+信號量+ 鎖+Control.Invoke。.NET的異步編程模型給我們提供了一種基於 IAsyncResult的編程模式,它尤其適用於處理下面的應用場景:

1) 被阻止,正在等待一個 IAsyncResult

2) 被阻止,正在等待多個 IAsyncResult 對象

3) 輪詢 IAsyncResult 上的完成情形

.NET還提供了基於事件的異步編程模式,它能夠提供:

1) 後台執行耗時任務(例如下載和數據庫操作),但不會中斷應用程序

2) 同時執行多個操作,每個操作完成時都會接到通知

下面是一個符合基於事件的異步編程模式的類:

public class AsyncExample
{
   public int Method1(string param);
   public void Method2(double param);

   public void Method1Async(string param);
   public void Method1Async(string param, object userState);
   public event Method1CompletedEventHandler Method1Completed;

   public void Method2Async(double param);
   public void Method2Async(double param, object userState);
   public event Method2CompletedEventHandler Method2Completed;

   public void CancelAsync(object userState);

   public bool IsBusy { get; }
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved