您目前已離線,請等候您的網際網路重新連線

不支援您的瀏覽器

您必須更新瀏覽器,才能使用此網站。

更新至最新版本的 Internet Explorer

如何使用 Visual C# 來提交至執行緒集區的工作項目

重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。

按一下這裡查看此文章的英文版本:315460
本文參照下列 Microsoft.NET Framework 類別庫命名空間:
  • System.Threading

在此工作

結論
本文將逐步告訴您如何送出至執行緒集區方法,針對執行。

在.NET 的環境中每個處理程序會有執行緒集區可讓您以非同步方式執行方法。

back to the top

需求


下列清單列出建議的硬體、 軟體、 網路基礎結構及所需的 Service Pack:
  • Microsoft Visual Studio.NET 或 Microsoft Visual Studio 2005
本文假設您已熟悉下列主題:
  • 在 Visual C# 程式設計語言
back to the top

建立 Visual C# 應用程式使用執行緒集區

  1. 啟動 Microsoft Visual Studio.NET 或 Microsoft Visual Studio 2005。
  2. 建立新的 Visual C# Windows 應用程式專案,名為 PoolDemo。
  3. 使用工具箱將 按鈕 控制項加入至表單。[按鈕] 控制項,預設的名稱都是 button1。
  4. 在表單上按一下滑鼠右鍵,然後按一下 [檢視程式碼
  5. 貼上下列 using 指示詞,在現有 using 指示詞之後, 但 PoolDemo 命名空間宣告之前:
    using System.Threading;					
  6. 切換回 [設計] 檢視,然後連按兩下 button1。下列程式碼貼 button1_Click 事件處理常式中:
    private void button1_Click(object sender, System.EventArgs e){	WaitCallback wcb = new WaitCallback(GetSysDirSize);	try	{		ThreadPool.QueueUserWorkItem(wcb);		MessageBox.Show("The work item has been placed on the queue");	}	catch (Exception ex)	{		MessageBox.Show("Error: " + ex.Message);	}}					
  7. 貼上下列程式碼本文中的 Form1 類別。GetSysDirSize 方法計算儲存在系統目錄中的位元組總數目。GetSysDirSize 呼叫另一個名為 DirSize 來執行計算的方法。

    注意: 這個工作可能需要花費一些時間才能執行
    private void GetSysDirSize(object state){	long total_length = DirSize(Environment.SystemDirectory);	this.Text = total_length.ToString();}private long DirSize(string path){	long sz = 0;	System.IO.DirectoryInfo d = new System.IO.DirectoryInfo(path);		// List files.	foreach(System.IO.FileInfo f in d.GetFiles())	{		sz += f.Length;	}	// Recurse into directories.	foreach(System.IO.DirectoryInfo dx in d.GetDirectories())	{		sz += DirSize(dx.FullName);	}	return sz;}					
back to the top

測試範例

  1. 按下 CTRL + F5 執行應用程式。
  2. 顯示表單,請按一下按鈕]。當 工作項目放置在佇列] 訊息方塊出現時,按一下 [確定] 以關閉訊息方塊,並回到主要表單。 短的延遲後總檔案大小系統目錄中的會顯示在表單的標題。延遲的時間長度取決於您的電腦和系統目錄中的檔案數目的速度。檔案大小的計算發生在執行緒上執行緒集區中。
back to the top

警告:本文為自動翻譯

內容

文章識別碼:315460 - 最後檢閱時間:12/11/2006 20:59:14 - 修訂: 2.3

  • Microsoft Visual C# 2005 Express Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
  • kbmt kbhowtomaster kbsample kbthread KB315460 KbMtzh
意見反應