詳細(xì)介紹ADO.NETConnection學(xué)習(xí)了解
詳細(xì)對ADO.NETConnection的學(xué)習(xí),想必很多朋友對它都有所了解,在這里我就不詳細(xì)展開說了,而且針對不同的應(yīng)用使用了多個ADOConnection,我想我應(yīng)該自己動手來好好研究一下這個問題了
線程是允許程序的一部分獨立于其他部分運(yùn)行。線程可以在單個線程執(zhí)行的同時運(yùn)行多個操作,讓用戶感到像同時發(fā)生的一樣,即使其中的某些線程出現(xiàn)錯誤,相互間的操作也不會直接受到影響。一個多線程功能的典型范例是Office中的Word拼寫檢查程序。在程序開始時,執(zhí)行指針位于該程序的頂部,然后移動至開始讀入代碼的位置。不過Word同時還將開始另一個線程并創(chuàng)建另一個執(zhí)行指針。
當(dāng)鍵入文本時,這個新線程將檢查在文檔中輸入的文本,并給有拼寫錯誤的地方置于紅色的波浪線標(biāo)記,這個大家在打英文的時候,會常見到。ADO.NETConnection說到線程就不能不談“進(jìn)程”這個詞,這兩個詞幾乎總是同時出現(xiàn)。Windows可以將許多程序同時保存在內(nèi)存中,并允許用戶在程序之間來回切換。
這種能夠同時運(yùn)行多個程序的能力稱作多任務(wù)。一個進(jìn)程中可以包含許多單獨的線程。所以要注意,多任務(wù)和多線程并不是一回事。既然可能有許多線程,便可以對不同的線程指定不同的優(yōu)先級。
聊了半天線程,下面我們把它和ADO.NETConnection結(jié)合起來談。在數(shù)據(jù)庫訪問領(lǐng)域,線程可以建立具有大量數(shù)據(jù)的控件而不阻止用戶與其他控件交互。.NET Framework提高了運(yùn)行多個執(zhí)行線程的可編程性。在深入介紹ADO.NETConnection的異步操作之前,要說明幾點。#t#
1. NET Framework用System .Threading名稱空間簡化生成線程的工作,但這同樣是危險的。線程可能造成很難查錯的異常行為,我想大家在Windows操作系統(tǒng)下使用多種軟件時出現(xiàn)的令人費(fèi)解的錯誤已經(jīng)很多了。
2. 線程應(yīng)用程序很難調(diào)試,但調(diào)試是非常重要的,如果使用在銀行系統(tǒng),醫(yī)療系統(tǒng),出現(xiàn)異常錯誤,損失會很大。
3. 需要認(rèn)真管理線程,多線程應(yīng)用程序中的線程實際上共享相同的內(nèi)存空間,在同一進(jìn)程中的線程間有可能覆蓋對方的重要數(shù)據(jù)。
為什么?程序在為改動之前使用BDE運(yùn)行得好好的,我并沒有更改程序的結(jié)構(gòu)???我十分的迷惑,當(dāng)然要想解決問題一切都得從錯誤代碼開始。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í)行時操作不能被執(zhí)行(完成),還是不太清楚錯誤的原因,于是我在一個網(wǎng)站發(fā)布了帖子求助,一些人告訴我ADO線程不安全,需要線程同步,事實上我的程序做了同步,而且針對不同的應(yīng)用使用了多個ADO.NETConnection,我想我應(yīng)該自己動手來好好研究一下這個問題了,它很意思。接下來我該好好分析我的程序并做一系列的測試來找到那個炸彈。