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

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

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
簡(jiǎn)述進(jìn)程、線程與項(xiàng)目的關(guān)系

  首先在Visual Studio2010新建了一個(gè)WinForm項(xiàng)目WinFormApp1,里面會(huì)默認(rèn)有個(gè)叫Form1的窗口。假設(shè),項(xiàng)目WinFormApp1的功能是為了查詢遠(yuǎn)端Ftp服務(wù)器的文檔目錄,然后把查到的結(jié)果顯示到Form1的界面上。通常的做法是在Form1.cs類中添加一個(gè)QueryFtpFiles()方法用于對(duì)遠(yuǎn)端的ftp服務(wù)器進(jìn)行讀操作,然后把讀到的內(nèi)容顯示到界面上就算完成了。

  在這個(gè)項(xiàng)目完成后,一般會(huì)先在本地或局域網(wǎng)內(nèi)的某個(gè)Ftp服務(wù)器上先做個(gè)測(cè)試,這時(shí)你會(huì)發(fā)現(xiàn)程序很***地運(yùn)行著。當(dāng)你興致沖沖地把代碼交給你領(lǐng)導(dǎo)的時(shí)候,你的上司拿了遠(yuǎn)在美國(guó)的ftp服務(wù)器來試運(yùn)行,點(diǎn)擊“查詢”按鈕執(zhí)行QueryFtpFiles()查詢操作的時(shí)候,悲劇發(fā)生了——頁面死掉了(沒有響應(yīng))。。。你是不是覺得很沒面子?有木有?

  這里有個(gè)問題,就是在執(zhí)行QueryFtpFiles()方法時(shí),由于是對(duì)遠(yuǎn)端的ftp服務(wù)器進(jìn)行讀操作,本身IO操作就比較耗時(shí),再考慮到網(wǎng)絡(luò)延遲等因素,你的界面就不得不停下了等待讀操作的完成。如果在這個(gè)讀操作完成前,你急不可耐地點(diǎn)了下界面,就出現(xiàn)了“沒有響應(yīng)”的后果。

  其實(shí),我在運(yùn)行這個(gè)項(xiàng)目的時(shí)候,實(shí)際上是在運(yùn)行由這個(gè)項(xiàng)目自動(dòng)在Debug或Release目錄下生成的WinFormApp1.exe應(yīng)用程序,而WinFormApp1.exe對(duì)于我的Windows Server2003即操作系統(tǒng)來說,他就是一個(gè)進(jìn)程。

  操作系統(tǒng)書中講,傳統(tǒng)的進(jìn)程有兩個(gè)基本屬性:擁有資源的獨(dú)立單位和可獨(dú)立調(diào)度和分配的基本單位。由于在進(jìn)程的創(chuàng)建、撤銷和切換中,系統(tǒng)必須耗費(fèi)較大的時(shí)空開銷。引入線程后,傳統(tǒng)的進(jìn)程的兩個(gè)基本屬性分開,線程作為調(diào)度和分配的基本單位,進(jìn)程作為獨(dú)立分配資源的單位。也就是說,在完成一個(gè)復(fù)雜的功能時(shí),可以在一個(gè)進(jìn)程中建立多個(gè)線程,每個(gè)線程分別完成某一項(xiàng)簡(jiǎn)單功能,進(jìn)程通過調(diào)度和排列組合這些線程來實(shí)現(xiàn)這個(gè)復(fù)雜的功能。

  線程,其實(shí)就是一段代碼,一個(gè)方法或一連串方法,這段代碼或方法可以去完成某個(gè)功能,也可以什么都不用做,比如上面提到的QueryFtpFiles(),它其實(shí)就滿足作為線程的基本條件。

  再回到原來的“沒有響應(yīng)”的問題上,在執(zhí)行WinFormApp1.exe這個(gè)進(jìn)程的時(shí)候,這個(gè)進(jìn)程會(huì)調(diào)用UI線程,其實(shí)也就是Form1.cs內(nèi)的代碼以及它調(diào)用的其他類的代碼,因?yàn)镼ueryFtpFiles()也在Form1.cs這個(gè)類中,所以它也算是UI線程的一部分。WinFormApp1.exe進(jìn)程執(zhí)行時(shí)會(huì)首先調(diào)用這個(gè)UI線程(若沒有定義其他線程,這時(shí)UI線程應(yīng)該也是這個(gè)進(jìn)程的唯一線程),這個(gè)UI線程在執(zhí)行QueryFtpFile()方法的過程中由于耗時(shí)很多以至于這個(gè)進(jìn)程其他什么什么操作都要停下來等待,包括你去點(diǎn)擊界面的操作。

  問題的描述應(yīng)該就是這樣了,至于解決方法,可以在UI線程中再定義另外一個(gè)線程thread1用來執(zhí)行QueryFtpFile()方法就可以了。

原文鏈接:http://www.cnblogs.com/computer-lzy/archive/2011/07/19/2111002.html

【編輯推薦】

  1. 新手軟件項(xiàng)目經(jīng)理該如何入門
  2. 項(xiàng)目經(jīng)理的力量應(yīng)該從哪里來?
  3. 當(dāng)你從程序員變?yōu)轫?xiàng)目經(jīng)理
  4. 軟件測(cè)試項(xiàng)目為什么會(huì)失敗
  5. 項(xiàng)目管理之CVS與SVN日常使用總結(jié)

分享標(biāo)題:簡(jiǎn)述進(jìn)程、線程與項(xiàng)目的關(guān)系
網(wǎng)站鏈接:http://www.5511xx.com/article/cdjgppo.html