溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

.NET Framework線程的使用方法

發(fā)布時間:2021-06-17 14:40:37 來源:億速云 閱讀:120 作者:chen 欄目:編程語言

這篇文章主要介紹“.NET Framework線程的使用方法”,在日常操作中,相信很多人在.NET Framework線程的使用方法問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”.NET Framework線程的使用方法”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

我們今天將會從這篇文章中詳細了解到有關.NET Framework線程的具體操作方法。幫助大家提高對這一方面技巧的掌握。豐富的用戶體驗是所有交互式應用程序的主要方面。需要用戶交互的軟件必須盡可能快地響應用戶的活動。與此同時,應用程序必須能夠處理數據以便將結果顯示給用戶。

在應用程序中使用多個線程可以將用戶界面 (UI) 執(zhí)行的任務與后臺執(zhí)行的任務分開。通過此方式組織任務,可以由 UI 響應用戶輸入,同時由后臺進程進行數據處理。

創(chuàng)建輔助型.NET Framework線程

應用程序可以創(chuàng)建一個或多個線程以執(zhí)行方法。創(chuàng)建輔助(或從屬)線程的***個步驟是創(chuàng)建 ThreadStart 代理,指定要由該線程執(zhí)行的方法。然后將 ThreadStart 代理傳遞給 Thread 類的構造函數。例如,要啟動新的線程并執(zhí)行 MyFunction 方法,請調用 Thread 類的 Start 方法,如下所示:

ThreadStart starter = new ThreadStart(MyFunction);

Thread t = new Thread(starter);

t.Start();

從輔助線程更新用戶界面

您可以使用 Control.Invoke 從 UI 線程以外的其他線程更新用戶界面 (UI)。此方法在 UI 線程上的控件線程上下文中執(zhí)行代理。.NET Framework 精簡版只支持 .NET Framework 完整版中的重載 Control.Invoke 方法。Control.Invoke 只使用一個參數:一個指ㄔ?UI 線程上執(zhí)行哪個方法的代理。該代理的類型必須為 EventHandler,并且具有以下簽名:

void MyFunctionName(object sender, EventArgs e)

.NET Framework線程的處理中需要注意的一點是,如果要在輔助線程中更新 UI,就必須在代碼中調用 Application.DoEvents()。調用 Application.DoEvents() 可確保輔助線程激發(fā)的任何事件都由該 UI 線程處理。

下面的示例代碼說明如何創(chuàng)建輔助線程,然后從 UI 線程和輔助線程更新名為 listBox1 的 ListBox 控件:

// 此變量將保留輔助線程設置的一些文本  public string Message = "";  // 創(chuàng)建輔助線程,然后將項目從 UI 線程添加到  // ListBox 中  public void DoThreading()  {  // 創(chuàng)建并啟動輔助線程  ThreadStart starter = new ThreadStart(this.UpdateListBox);  Thread t = new Thread(starter);  t.Start();  // 循環(huán) 4 次,每次都向 ListBox 中添加一條消息  for(int i = 0; i < 4; i++);  {  this.listBox1.Items.Add("來自 UI 線程的消息");  this.listBox1.Update();  // 處理 UI 線程中排隊的事件  Application.DoEvents();  // 將進程掛起一秒鐘  Thread.Sleep(1000);  }  this.listBox1.Items.Add("來自 UI 線程的上一條消息");  this.listBox1.Update();  }  public void UpdateListBox()  {  for(int j = 0; j < 5; j++)  {  // 設置要從輔助線程添加到 ListBox 中的  // 消息  this.Message = "輔助線程的循環(huán)數 = " + j.ToString();  // 在 ListBox 的線程上下文中調用 WorkerUpdate   // 方法  this.listBox1.Invoke(new EventHandler(WorkerUpdate));  Thread.Sleep(700);  }  }  // 為更新 ListBox 從輔助線程中  // 調用的代理  public void WorkerUpdate(object sender, EventArgs e)  {  this.listBox1.Items.Add(this.Message);  this.listBox1.Update();  }

要使用此代碼,請執(zhí)行以下操作:

.NET Framework線程使用 Windows 應用程序模板創(chuàng)建新的智能設備應用程序。將 ListBox 控件添加到 Windows 窗體中(默認名稱為 listBox1)。將使用 System.Threading; 的語句添加到 Form1.cs 文件的頂部。將代碼粘貼到 Form1 類中。從 Form1 構造函數中調用 DoThreading 方法。

到此,關于“.NET Framework線程的使用方法”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注億速云網站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI