日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
.NETFramework線程詳細(xì)操作過(guò)程介紹

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

黃石網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)公司公司2013年成立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)公司。

在應(yīng)用程序中使用多個(gè)線程可以將用戶界面 (UI) 執(zhí)行的任務(wù)與后臺(tái)執(zhí)行的任務(wù)分開。通過(guò)此方式組織任務(wù),可以由 UI 響應(yīng)用戶輸入,同時(shí)由后臺(tái)進(jìn)程進(jìn)行數(shù)據(jù)處理。

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

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

ThreadStart starter = new ThreadStart(MyFunction);

Thread t = new Thread(starter);

t.Start();

從輔助線程更新用戶界面

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

void MyFunctionName(object sender, EventArgs e)

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

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

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

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

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


新聞名稱:.NETFramework線程詳細(xì)操作過(guò)程介紹
當(dāng)前網(wǎng)址:http://m.5511xx.com/article/djjcheo.html