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