詳細(xì)介紹ADO.NETConnection學(xué)習(xí)了解
詳細(xì)對(duì)ADO.NETConnection的學(xué)習(xí),想必很多朋友對(duì)它都有所了解,在這里我就不詳細(xì)展開說了,而且針對(duì)不同的應(yīng)用使用了多個(gè)ADOConnection,我想我應(yīng)該自己動(dòng)手來好好研究一下這個(gè)問題了
線程是允許程序的一部分獨(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ì)常見到。ADO.NETConnection說到線程就不能不談“進(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í)。
聊了半天線程,下面我們把它和ADO.NETConnection結(jié)合起來談。在數(shù)據(jù)庫訪問領(lǐng)域,線程可以建立具有大量數(shù)據(jù)的控件而不阻止用戶與其他控件交互。.NET Framework提高了運(yùn)行多個(gè)執(zhí)行線程的可編程性。在深入介紹ADO.NETConnection的異步操作之前,要說明幾點(diǎn)。#t#
1. NET Framework用System .Threading名稱空間簡化生成線程的工作,但這同樣是危險(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ù)。
為什么?程序在為改動(dòng)之前使用BDE運(yùn)行得好好的,我并沒有更改程序的結(jié)構(gòu)啊?我十分的迷惑,當(dāng)然要想解決問題一切都得從錯(cuò)誤代碼開始。OLE error 800A0E7F:什么咚咚來的?它什么意思?什么原因引起的?我找了半天也沒有在我的系統(tǒng)里找到它的說明,好在現(xiàn)在網(wǎng)絡(luò)發(fā)達(dá),也許有人遇到跟我一樣的問題吧,于是我用OLE error 800A0E7F作為關(guān)鍵字搜了一下,嘿嘿,果真被我找到了:
- >0x800A0E7F Operation cannot be performed while executing > asynchronously
異步執(zhí)行時(shí)操作不能被執(zhí)行(完成),還是不太清楚錯(cuò)誤的原因,于是我在一個(gè)網(wǎng)站發(fā)布了帖子求助,一些人告訴我ADO線程不安全,需要線程同步,事實(shí)上我的程序做了同步,而且針對(duì)不同的應(yīng)用使用了多個(gè)ADO.NETConnection,我想我應(yīng)該自己動(dòng)手來好好研究一下這個(gè)問題了,它很意思。接下來我該好好分析我的程序并做一系列的測試來找到那個(gè)炸彈。

















