人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當(dāng)前位置:蘿卜系統(tǒng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁面

運(yùn)用 Visual Basic .NET 進(jìn)行多線程編程(轉(zhuǎn)自MSDN)

運(yùn)用 Visual Basic .NET 進(jìn)行多線程編程(轉(zhuǎn)自MSDN)

更新時間:2022-06-05 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

使用 Visual Basic .NET 進(jìn)行多線程編程
Robert Burns
Visual Studio Team
Microsoft Corporation

2002 年 2 月
摘要:.NET 框架提供了新的類,可以方便地創(chuàng)建多線程應(yīng)用程序。本文介紹如何使用 Visual Basic® .NET 的多線程編程技術(shù)來開發(fā)效率更高、響應(yīng)速度更快的應(yīng)用程序。

目錄

  • 簡介
  • 多線程處理的優(yōu)點(diǎn)
  • 創(chuàng)建新線程
  • 同步線程
  • 線程計(jì)時器
  • 取消任務(wù)
  • 總結(jié)

簡介


過去,Visual Basic 開發(fā)人員創(chuàng)建的應(yīng)用程序都是程序任務(wù)依次執(zhí)行的同步應(yīng)用程序。雖然多線程應(yīng)用程序因多個任務(wù)幾乎同時運(yùn)行而具有更高的效率,但使用早期版本的 Visual Basic 來創(chuàng)建這樣的應(yīng)用程序卻很困難。
一項(xiàng)稱為多任務(wù)處理的操作系統(tǒng)功能使多線程程序成為可能,它能模擬同時運(yùn)行多個應(yīng)用程序的功能。雖然多數(shù)個人計(jì)算機(jī)都只安裝了一個處理器,但現(xiàn)代操作系統(tǒng)通過將處理器時間分配給多段可執(zhí)行代碼(稱為線程),提供了多任務(wù)處理功能。線程可以代表整個應(yīng)用程序,但通常只代表應(yīng)用程序中可單獨(dú)運(yùn)行的一部分。操作系統(tǒng)根據(jù)線程的優(yōu)先級、上次運(yùn)行線程后經(jīng)過的時間等因素為每個線程分配處理時間。在執(zhí)行耗時的任務(wù)(如文件輸入和輸出)時,多線程能夠顯著提高性能。
但要注意一個問題。雖然多線程可以提高性能,但每個線程都需要額外的內(nèi)存來創(chuàng)建線程,還需要處理器時間來運(yùn)行線程。如果創(chuàng)建的線程過多,反而會降低應(yīng)用程序的性能。在設(shè)計(jì)多線程應(yīng)用程序時,應(yīng)在添加更多線程所獲得的好處及其成本之間進(jìn)行權(quán)衡。
多任務(wù)處理成為操作系統(tǒng)的一部分已經(jīng)很長時間了。但直到最近,Visual Basic 程序員也只能通過非正式發(fā)布的功能,來執(zhí)行多線程任務(wù),或者通過使用 COM 組件或操作系統(tǒng)的異步組件,來間接實(shí)現(xiàn)此功能。而 .NET 框架在 System.Threading 命名空間中為開發(fā)多線程應(yīng)用程序提供了全面的支持。
本文討論多線程的一些優(yōu)點(diǎn)以及如何使用 Visual Basic .NET 來開發(fā)多線程應(yīng)用程序。雖然 Visual Basic .NET 和 .NET 框架使多線程應(yīng)用程序的開發(fā)變得很簡單,但本文主要面向中高級開發(fā)人員,以及正在從 Visual Basic 的早期版本過渡到 Visual Basic .NET 的開發(fā)人員。對于 Visual Basic .NET 的初學(xué)者,請首先閱讀 Visual Basic Language Tour(英文)中的相應(yīng)主題。
本文并非是對多線程編程的全面討論。要獲得更多的信息,請參閱本文最后列出的其他資源。

多線程處理的優(yōu)點(diǎn)


同步應(yīng)用程序的開發(fā)比較容易,但由于需要在上一個任務(wù)完成后才能開始新的任務(wù),所以其效率通常比多線程應(yīng)用程序低。如果完成同步任務(wù)所用的時間比預(yù)計(jì)時間長,應(yīng)用程序可能會不響應(yīng)。多線程處理可以同時運(yùn)行多個過程。例如,文字處理器應(yīng)用程序在您處理文檔的同時,可以檢查拼寫(作為單獨(dú)的任務(wù))。由于多線程應(yīng)用程序?qū)⒊绦騽澐殖瑟?dú)立的任務(wù),因此可以在以下方面顯著提高性能:
  • 多線程技術(shù)使程序的響應(yīng)速度更快,因?yàn)橛脩艚缑婵梢栽谶M(jìn)行其他工作的同時一直處于活動狀態(tài)。
  • 當(dāng)前沒有進(jìn)行處理的任務(wù)可以將處理器時間讓給其他任務(wù)。
  • 占用大量處理時間的任務(wù)可以定期將處理器時間讓給其他任務(wù)。
  • 可以隨時停止任務(wù)。
  • 可以分別設(shè)置各個任務(wù)的優(yōu)先級以優(yōu)化性能。

是否需要創(chuàng)建多線程應(yīng)用程序取決于多個因素。在以下情況下,最適合采用多線程處理:
  • 耗時或大量占用處理器的任務(wù)阻塞用戶界面操作。
  • 各個任務(wù)必須等待外部資源(如遠(yuǎn)程文件或 Internet 連接)。

例如,用于跟蹤 Web 頁上的鏈接并下載滿足特定條件的文件的 Internet 應(yīng)用程序“robot”。這種應(yīng)用程序可以依次同步下載各個文件,也可以使用多線程同時下載多個文件。多線程方法比同步方法的效率高很多,因?yàn)榧词乖谀承┚程中遠(yuǎn)程 Web 服務(wù)器的響應(yīng)非常慢,也可以下載文件。

創(chuàng)建新線程


創(chuàng)建線程最直接的方法是創(chuàng)建新的線程類實(shí)例,并使用 AddressOf 語句為要運(yùn)行的過程傳遞委托。例如,以下代碼將名為 SomeTask 的子過程作為單獨(dú)的線程運(yùn)行。
Dim Thread1 As New System.Threading.Thread(AddressOf SomeTask)Thread1.Start' 此處的代碼立即運(yùn)行。

以上所述就是創(chuàng)建和啟動線程的方法。在線程 Start 方法調(diào)用之后的任何代碼將立即運(yùn)行,而無需等待前一個線程運(yùn)行結(jié)束。
下表列出了用于控制各個線程的一些方法。方法操作
Start

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

網(wǎng)站地圖xml | 網(wǎng)站地圖html
主站蜘蛛池模板: 石台县| 库尔勒市| 宣化县| 安新县| 扎赉特旗| 搜索| 江陵县| 郎溪县| 田林县| 德格县| 武宣县| 拜城县| 石台县| 伊春市| 海丰县| 根河市| 德昌县| 平原县| 滕州市| 广东省| 洛扎县| 伊吾县| 卢氏县| 聂拉木县| 平顺县| 通河县| 湘潭市| 蒙阴县| 黄浦区| 林周县| 仁化县| 松桃| 九龙县| 顺平县| 桦南县| 图片| 宁武县| 方正县| 乌拉特后旗| 台州市| 定安县|