執行緒集區技術範例
更新:2007 年 11 月
本範例示範 ThreadPool 類別的用法。範例會佇列由執行緒執行的非同步方法呼叫,而執行緒則來自 Common Language Runtime 管理的執行緒集區。
如需使用這些範例的詳細資訊,請參閱下列主題:
若要使用命令提示字元建置範例
開啟 [命令提示字元] 視窗,並巡覽至此範例的任一程式設計語言的子目錄。
根據您選擇的程式設計語言,在命令列輸入 msbuild PoolsCS.sln 或 msbuild PoolsVB.sln。
若要使用 Visual Studio 建置範例
開啟 [Windows 檔案總管],並巡覽至此範例的任一程式設計語言的子目錄。
根據您選擇的程式設計語言,按兩下 PoolsCS.sln 或 PoolsVB.sln 檔案的圖示,在 Visual Studio 中開啟該檔案。
在 [建置] 功能表上,按一下 [建置方案]。
若要執行範例
使用命令提示字元巡覽至已建立之可執行檔所在的目錄。
在命令列上輸入 AsyncMethod.exe。
注意事項: 這個範例會建置一個主控台應用程式。您必須從命令提示字元啟動,才能檢視它的輸出。
備註
這個範例使用佇列來管理非同步方法呼叫。呼叫的方法會「進行一些工作」,然後設定事件,表示此工作已經完成。主執行緒會等候此事件,然後才離開。
下面幾點簡短說明了此範例所使用的類別和技術:
執行緒處理
- ThreadPool 撰寫 Managed 程式碼時,建議開發人員盡可能使用 QueueUserWorkItem 方法實作非同步方法呼叫。這個範例示範了如何使用此型別來執行非同步行為。
執行緒同步處理
- AutoResetEvent 此範例的主執行緒會等候 AutoResetEvent 物件,直到非同步方法設定主執行緒為止。非同步化方法完成工作之後,便會呼叫 Set 方法。
委派
- WaitCallback 用來建立型別安全的回呼方法供 ThreadPool 類別使用。
檢視原始程式碼中的註解,以取得執行緒同步處理的詳細資訊。