版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
線程的基本操作本講大綱:1、線程基礎(chǔ)——Thread類支持網(wǎng)站:2、線程的創(chuàng)建3、線程的掛起與恢復4、線程休眠5、終止線程6、線程的優(yōu)先級線程基礎(chǔ)——Thread類
Thread類位于System.Threading命名空間下,System.Threading命名空間提供一些使得可以進行多線程編程的類和接口。除同步線程活動和訪問數(shù)據(jù)的類(Mutex、Monitor、Interlocked和AutoResetEvent等)外,該命名空間還包含一個ThreadPool類(它允許用戶使用系統(tǒng)提供的線程池)和一個Timer類(它在線程池線程上執(zhí)行回調(diào)方法)。Thread類主要用于創(chuàng)建并控制線程、設(shè)置線程優(yōu)先級并獲取其狀態(tài)。一個進程可以創(chuàng)建一個或多個線程以執(zhí)行與該進程關(guān)聯(lián)的部分程序代碼,線程執(zhí)行的程序代碼由ThreadStart委托或ParameterizedThreadStart委托指定。線程運行期間,不同的時刻會表現(xiàn)為不同的狀態(tài),但它總是處于由ThreadState定義的一個或多個狀態(tài)中。用戶可以通過使用ThreadPriority枚舉為線程定義優(yōu)先級,但不能保證操作系統(tǒng)會接受該優(yōu)先級。屬性說明CurrentThread獲取當前正在運行的線程IsAlive獲取一個值,該值指示當前線程的執(zhí)行狀態(tài)Name獲取或設(shè)置線程的名稱Priority獲取或設(shè)置一個值,該值指示線程的調(diào)度優(yōu)先級ThreadState獲取一個值,該值包含當前線程的狀態(tài)方法說明Abort在調(diào)用此方法的線程上引發(fā)ThreadAbortException,以開始終止此線程的過程。調(diào)用此方法通常會終止線程Join阻止調(diào)用線程,直到某個線程終止時為止ResetAbort取消為當前線程請求的AbortResume繼續(xù)已掛起的線程Sleep將當前線程阻止指定的毫秒數(shù)Start使線程被安排進行執(zhí)行Suspent掛起線程,或者如果線程已掛起,則不起作用線程的創(chuàng)建
創(chuàng)建一個線程非常簡單,只需將其聲明并為其提供線程起始點處的方法委托即可。創(chuàng)建新的線程時,需要使用Thread類,Thread類具有接受一個ThreadStart委托或ParameterizedThreadStart委托的構(gòu)造函數(shù),該委托包裝了調(diào)用Start方法時由新線程調(diào)用的方法。創(chuàng)建了Thread類的對象之后,線程對象已存在并已配置,但并未創(chuàng)建實際的線程,這時,只有在調(diào)用Start方法后,才會創(chuàng)建實際的線程。
Start方法用來使線程被安排進行執(zhí)行,它有兩種重載形式,下面分別介紹。(1)導致操作系統(tǒng)將當前實例的狀態(tài)更改為ThreadState.Running。語法:publicvoidStart()(2)使操作系統(tǒng)將當前實例的狀態(tài)更改為ThreadState.Running,并選擇提供包含線程執(zhí)行的方法要使用的數(shù)據(jù)的對象。語法:publicvoidStart(Objectparameter)說明:parameter表示一個對象,包含線程執(zhí)行的方法要使用的數(shù)據(jù)。線程的掛起與恢復線程的掛起與恢復分別可以通過調(diào)用Thread類中的Suspend方法和Resume方法實現(xiàn),
1.Suspend方法該方法用來掛起線程,如果線程已掛起,則不起作用,語法如下。
publicvoidSuspend()說明:調(diào)用Suspend方法掛起線程時,.NET允許要掛起的線程再執(zhí)行幾個指令,目的是為了到達.NET認為線程可以安全掛起的狀態(tài)。2.Resume方法該方法用來繼續(xù)已掛起的線程,語法如下。
publicvoidResume()說明:通過Resume方法來恢復被暫停的線程時,無論調(diào)用了多少次Suspend方法,調(diào)用Resume方法均會使另一個線程脫離掛起狀態(tài),并導致該線程繼續(xù)執(zhí)行。線程休眠線程休眠主要通過Thread類的Sleep方法實現(xiàn),該方法用來將當前線程阻止指定的時間,它有兩種重載形式,下面分別進行介紹。(1)將當前線程掛起指定的時間,語法如下。
publicstaticvoidSleep(intmillisecondsTimeout)millisecondsTimeout:線程被阻止的毫秒數(shù)。指定零以指示應(yīng)掛起此線程以使其他等待線程能夠執(zhí)行,指定Infinite以無限期阻止線程。(2)將當前線程阻止指定的時間,語法如下。
publicstaticvoidSleep(TimeSpantimeout)timeout:線程被阻止的時間量的TimeSpan。指定零以指示應(yīng)掛起此線程以使其他等待線程能夠執(zhí)行,指定Infinite以無限期阻止線程。例如:
Thread.Sleep(1000); //使線程休眠一秒鐘終止線程終止線程可以分別使用Thread類的Abort方法和Join方法實現(xiàn),下面對這兩個方法進行詳細介紹。1.Abort方法它的兩種重載方式如下:
publicvoidAbort()publicvoidAbort(ObjectstateInfo)stateInfo:一個對象,它包含應(yīng)用程序特定的信息(如狀態(tài)),該信息可供正被終止的線程使用。2.Join方法它的3種重載方式如下:
publicvoidJoin()publicboolJoin(intmillisecondsTimeout)publicboolJoin(TimeSpantimeout)millisecondsTimeout:等待線程終止的毫秒數(shù)。timeout:等待線程終止的時間量的TimeSpan。線程的優(yōu)先級
線程優(yōu)先級指定一個線程相對于另一個線程的相對優(yōu)先級。每個線程都有一個分配的優(yōu)先級。在公共語言運行庫內(nèi)創(chuàng)建的線程最初被分配為Normal優(yōu)先級,而在公共語言運行庫外創(chuàng)建的線程,在進入公共語言運行庫時將保留其先前的優(yōu)先級。線程是根據(jù)其優(yōu)先級而調(diào)度執(zhí)行的,用于確定線程執(zhí)行順序的調(diào)度算法隨操作系統(tǒng)的不同而不同。在某些操作系統(tǒng)下,具有最高優(yōu)先級(相對于可執(zhí)行線程而言)的線程經(jīng)過調(diào)度后總是首先運行。如果具有相同優(yōu)先級的多個線程都可用,則程序?qū)⒈闅v處于該優(yōu)先級的線程,并為每個線程提供一個固定的時間片來執(zhí)行。只要具有較高優(yōu)先級的線程可以運行,具有較低優(yōu)先級的線程就不會執(zhí)行。如果在給定的優(yōu)先級上不再有可運行的線程,則程序?qū)⒁频较乱粋€較低的優(yōu)先級并在該優(yōu)先級上調(diào)度線程以執(zhí)行。如果具有較高優(yōu)先級的線程可以運行,則具有較低優(yōu)先級的線程將被搶先,并允許具有較高優(yōu)先級的線程再次執(zhí)行。除此之外,當應(yīng)用程序的用戶界面在前臺和后臺之間移動時,操作系統(tǒng)還可以動態(tài)調(diào)整線程優(yōu)先級。開發(fā)人員可以通過訪問線程的Priority屬性來獲取和設(shè)置其優(yōu)先級。Priority屬性用來獲取或設(shè)置一個值,該值指示線程的調(diào)度優(yōu)先級。語法:publicThreadPriorityPriority{get;set;}說明:屬性值為ThreadPriority類型的枚舉值之一,默認值為Normal。優(yōu)先級值說明AboveNormal可以將Thread安排在具有Highest優(yōu)先級的線程之后,在具有Normal優(yōu)先級的線程之前BelowNormal可以將Thread安排在具有Normal優(yōu)先級的線程之后,在具有Lowest優(yōu)先級的線程之前Highest可以將Thread安排在具
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年頒獎典禮致敬奉獻感恩同行
- 2026年回歸城市特色的房地產(chǎn)開發(fā)策略
- 禁毒預防知識課件
- 病毒性肺炎培訓課件
- 云南省部分學校2025-2026學年七年級上學期第二次月考歷史試題(含答案)
- 四川省瀘州市瀘縣2025-2026學年七年級上學期1月期末數(shù)學試題(含答案)
- 阿拉善生態(tài)基金會2024年年度報告
- 2024屆河南省濮陽市范縣高三上學期模擬測試(一)歷史試題(含答案)
- 2022-2023學年廣東深圳實驗學校初中部初三上學期第一次月考數(shù)學試題及答案
- 2026北京市海淀工讀學校招聘備考題庫及答案詳解1套
- 廣東省廣州市2025年上學期八年級數(shù)學期末考試試卷附答案
- 疑難病例討論制度落實常見問題與改進建議
- 手機鋪貨協(xié)議書
- 2025年新能源停車場建設(shè)項目可行性研究報告
- 2025年物業(yè)管理中心工作總結(jié)及2026年工作計劃
- 創(chuàng)傷性脾破裂的護理
- 蓬深102井鉆井工程(重新報批)項目環(huán)境影響報告表
- 馬路切割承包協(xié)議書
- 大模型金融領(lǐng)域可信應(yīng)用參考框架
- (新教材)2025年人教版七年級上冊歷史期末復習??贾R點梳理復習提綱(教師版)
- 學??剌z保學工作流程及四書一表一單
評論
0/150
提交評論