成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

.NET Framework線程詳細操作過程介紹

開發 后端
.NET Framework線程操作方法在實際應用中是非常常見的。我們可以通過在編碼實踐中區具體的解讀這些操作技巧,提高編程效率。

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

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

創建輔助型.NET Framework線程

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

ThreadStart starter = new ThreadStart(MyFunction);

Thread t = new Thread(starter);

t.Start();

從輔助線程更新用戶界面

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

void MyFunctionName(object sender, EventArgs e)

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

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

 

  1. // 此變量將保留輔助線程設置的一些文本  
  2. public string Message = "";  
  3. // 創建輔助線程,然后將項目從 UI 線程添加到  
  4. // ListBox 中  
  5. public void DoThreading()  
  6. {  
  7. // 創建并啟動輔助線程  
  8. ThreadStart starter = new ThreadStart(this.UpdateListBox);  
  9. Thread t = new Thread(starter);  
  10. t.Start();  
  11. // 循環 4 次,每次都向 ListBox 中添加一條消息  
  12. for(int i = 0; i < 4; i++);  
  13. {  
  14. this.listBox1.Items.Add("來自 UI 線程的消息");  
  15. this.listBox1.Update();  
  16. // 處理 UI 線程中排隊的事件  
  17. Application.DoEvents();  
  18. // 將進程掛起一秒鐘  
  19. Thread.Sleep(1000);  
  20. }  
  21. this.listBox1.Items.Add("來自 UI 線程的上一條消息");  
  22. this.listBox1.Update();  
  23. }  
  24. public void UpdateListBox()  
  25. {  
  26. for(int j = 0; j < 5; j++)  
  27. {  
  28. // 設置要從輔助線程添加到 ListBox 中的  
  29. // 消息  
  30. this.Message = "輔助線程的循環數 = " + j.ToString();  
  31. // 在 ListBox 的線程上下文中調用 WorkerUpdate   
  32. // 方法  
  33. this.listBox1.Invoke(new EventHandler(WorkerUpdate));  
  34. Thread.Sleep(700);  
  35. }  
  36. }  
  37. // 為更新 ListBox 從輔助線程中  
  38. // 調用的代理  
  39. public void WorkerUpdate(object sender, EventArgs e)  
  40. {  
  41. this.listBox1.Items.Add(this.Message);  
  42. this.listBox1.Update();  

 

要使用此代碼,請執行以下操作:

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

責任編輯:曹凱 來源: 博客園
相關推薦

2009-12-16 17:11:10

Fedora 掛載

2011-02-24 14:23:18

2010-04-26 00:42:08

DNS負載均衡

2009-08-25 15:48:03

C#數組操作

2009-12-15 11:28:34

.NET Framew

2009-10-30 10:58:45

VB.NET創建類

2010-05-17 13:28:15

MySQL 復制

2009-12-11 17:29:22

Linux桌面

2010-05-27 15:11:44

MySQL保存

2010-04-14 13:18:53

安裝無線適配器

2010-03-30 12:50:42

Oracle存儲

2010-06-30 12:39:11

2010-01-05 17:39:10

.NET Framew

2010-07-23 13:33:00

SQL Server

2010-08-18 15:42:33

2010-03-16 15:16:01

Python web框

2009-09-18 09:25:06

LINQ Framew

2010-06-01 14:17:44

MySQL重啟命令

2010-01-05 11:26:27

.net Framew

2010-08-05 09:33:31

DB2數據庫卸載
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲首页 | 精品在线免费观看视频 | 欧美一级欧美一级在线播放 | 欧美日韩电影一区二区 | 日韩高清成人 | 成人av观看| 成年人的视频免费观看 | 日韩靠逼 | 国产一区二区 | 欧美日韩在线一区 | 91精品国产综合久久福利软件 | 激情av| 黄网免费看| 日韩爱爱网| 国产一区二区三区免费 | 中文字幕在线观看一区二区 | 日本黄色不卡视频 | 四虎在线视频 | 亚洲欧美中文日韩在线v日本 | 日韩欧美一区二区三区免费观看 | 激情视频中文字幕 | 成人一区二区在线 | 亚洲国产aⅴ精品一区二区 免费观看av | 一级黄色夫妻生活 | 国产美女自拍视频 | 成人国产精品久久久 | 亚洲精品一二区 | 日韩福利在线 | 久久国内精品 | 中文字幕一区二区三区四区五区 | 国产精品无码专区在线观看 | 亚洲欧美综合网 | 日本成人综合 | 亚洲免费婷婷 | a在线免费观看 | www天天操 | 黄网站在线播放 | 午夜一区二区三区 | 国产一区 | 亚洲精品视频一区 | 色婷婷综合久久久久中文一区二区 |