講述ADO.NET異步操作時(shí)方法說(shuō)明
上回研究ADO.NET異步操作的相關(guān)步驟時(shí)。發(fā)現(xiàn)了ADO.NET異步操作存在許多的BUG,好吧,在介紹ADO.NET異步操作之前,我先來(lái)簡(jiǎn)單闡述一下ADO.NET異步操作的含義。
線(xiàn)程是允許程序的一部分獨(dú)立于其他部分運(yùn)行。線(xiàn)程可以在單個(gè)線(xiàn)程執(zhí)行的同時(shí)運(yùn)行多個(gè)操作,讓用戶(hù)感到像同時(shí)發(fā)生的一樣,即使其中的某些線(xiàn)程出現(xiàn)錯(cuò)誤,相互間的操作也不會(huì)直接受到影響。一個(gè)多線(xiàn)程功能的典型范例是Office中的Word拼寫(xiě)檢查程序。
在程序開(kāi)始時(shí),執(zhí)行指針位于該程序的頂部,然后移動(dòng)至開(kāi)始讀入代碼的位置。不過(guò)Word同時(shí)還將開(kāi)始另一個(gè)線(xiàn)程并創(chuàng)建另一個(gè)執(zhí)行指針。當(dāng)鍵入文本時(shí),這個(gè)新線(xiàn)程將檢查在文檔中輸入的文本,并給有拼寫(xiě)錯(cuò)誤的地方置于紅色的波浪線(xiàn)標(biāo)記,這個(gè)大家在打英文的時(shí)候,會(huì)常見(jiàn)到。說(shuō)到線(xiàn)程就不能不談“進(jìn)程”這個(gè)詞,這兩個(gè)詞幾乎總是同時(shí)出現(xiàn)。Windows可以將許多程序同時(shí)保存在內(nèi)存中。
并允許用戶(hù)在程序之間來(lái)回切換。這種能夠同時(shí)運(yùn)行多個(gè)程序的能力稱(chēng)作多任務(wù)。一個(gè)進(jìn)程中可以包含許多單獨(dú)的線(xiàn)程。所以要注意,多任務(wù)和多線(xiàn)程并不是一回事。既然可能有許多線(xiàn)程,便可以對(duì)不同的線(xiàn)程指定不同的優(yōu)先級(jí)。#t#
聊了半天線(xiàn)程,下面我們把它和ADO.NET結(jié)合起來(lái)談。在數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)領(lǐng)域,線(xiàn)程可以建立具有大量數(shù)據(jù)的控件而不阻止用戶(hù)與其他控件交互。.NET Framework提高了運(yùn)行多個(gè)執(zhí)行線(xiàn)程的可編程性。在深入介紹ADO.NET異步操作之前,要說(shuō)明幾點(diǎn)。
1. NET Framework用System .Threading名稱(chēng)空間簡(jiǎn)化生成線(xiàn)程的工作,但這同樣是危險(xiǎn)的。線(xiàn)程可能造成很難查錯(cuò)的異常行為,我想大家在Windows操作系統(tǒng)下使用多種軟件時(shí)出現(xiàn)的令人費(fèi)解的錯(cuò)誤已經(jīng)很多了。
2. 線(xiàn)程應(yīng)用程序很難調(diào)試,但調(diào)試是非常重要的,如果使用在銀行系統(tǒng),醫(yī)療系統(tǒng),出現(xiàn)異常錯(cuò)誤,損失會(huì)很大。
3. 需要認(rèn)真管理線(xiàn)程,多線(xiàn)程應(yīng)用程序中的線(xiàn)程實(shí)際上共享相同的內(nèi)存空間,在同一進(jìn)程中的線(xiàn)程間有可能覆蓋對(duì)方的重要數(shù)據(jù)。
上面的內(nèi)容有所認(rèn)識(shí)后,當(dāng)然,我們的實(shí)例還不牽扯到上面說(shuō)到得那么復(fù)雜的情況,作為初學(xué)者可以先不管那么多,我們首先介紹ADO.NET異步操作控件,System .Threading名稱(chēng)空間放置建立多線(xiàn)程應(yīng)用程序的主要組件。