版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
線程的基本操作本講大綱:1、線程基礎(chǔ)——Thread類支持網(wǎng)站:2、線程的創(chuàng)建3、線程的掛起與恢復(fù)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)導(dǎo)致操作系統(tǒng)將當前實例的狀態(tài)更改為ThreadState.Running。語法:publicvoidStart()(2)使操作系統(tǒng)將當前實例的狀態(tài)更改為ThreadState.Running,并選擇提供包含線程執(zhí)行的方法要使用的數(shù)據(jù)的對象。語法:publicvoidStart(Objectparameter)說明:parameter表示一個對象,包含線程執(zhí)行的方法要使用的數(shù)據(jù)。線程的掛起與恢復(fù)線程的掛起與恢復(fù)分別可以通過調(diào)用Thread類中的Suspend方法和Resume方法實現(xiàn),
1.Suspend方法該方法用來掛起線程,如果線程已掛起,則不起作用,語法如下。
publicvoidSuspend()說明:調(diào)用Suspend方法掛起線程時,.NET允許要掛起的線程再執(zhí)行幾個指令,目的是為了到達.NET認為線程可以安全掛起的狀態(tài)。2.Resume方法該方法用來繼續(xù)已掛起的線程,語法如下。
publicvoidResume()說明:通過Resume方法來恢復(fù)被暫停的線程時,無論調(diào)用了多少次Suspend方法,調(diào)用Resume方法均會使另一個線程脫離掛起狀態(tài),并導(dǎo)致該線程繼續(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)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2030年中國碳酸二甲酯行業(yè)運行形勢分析及項目可行性研究報告
- 2024-2030年中國硫酸氧釩行業(yè)產(chǎn)量預(yù)測及發(fā)展可行性研究報告
- 2024-2030年中國礦冶磁電設(shè)備行業(yè)發(fā)展狀況規(guī)劃分析報告
- 節(jié)慶活動臨時景觀照明方案
- 三位數(shù)除以一位數(shù)過關(guān)測驗?zāi)M題大全附答案
- 醫(yī)院醫(yī)德考評公開透明制度
- 2024城市基礎(chǔ)設(shè)施建設(shè)合同協(xié)議
- 2024年修訂版:煤倉場地租賃合同
- 2024年度房屋買賣合同房屋交付及價款支付
- 2024年度文化旅游開發(fā)合同
- 軟巖隧道設(shè)計
- PEP小學(xué)六年級英語上冊選詞填空專題訓(xùn)練
- 部編版道德與法治四年級上冊第一單元作業(yè)設(shè)計
- SB/T 10379-2012速凍調(diào)制食品
- GB/T 9754-2007色漆和清漆不含金屬顏料的色漆漆膜的20°、60°和85°鏡面光澤的測定
- 甲狀腺癌NCCN指南中文版2021.v2
- GB/T 28726-2012氣體分析氦離子化氣相色譜法
- GB/T 14100-2016燃氣輪機驗收試驗
- 晨鳴紙業(yè)財務(wù)報表分析
- 2023年山東省春季高考財經(jīng)類專業(yè)知識試題
- 四年級安全教育教案洪水來了巧逃生
評論
0/150
提交評論