瞬間掌握創(chuàng)建使用VB.NET線程訪問數(shù)據(jù)庫
線程并發(fā),線程阻塞,在我們的程序中線程是很重要的一塊,要考慮的因素也很多,這里我們就VB.NET線程訪問數(shù)據(jù)庫來詳細(xì)的分析一下。線程是操作系統(tǒng)分配處理器時間的基本單元,線程可以在單個執(zhí)行線程執(zhí)行的同時運(yùn)行多個活動,支持搶先多任務(wù)處理的操作系統(tǒng)可以創(chuàng)建多個線程并通過時間片輪轉(zhuǎn)的方式使它們同時運(yùn)行。
在需要良好用戶交互的應(yīng)用以及與網(wǎng)絡(luò)和數(shù)據(jù)庫進(jìn)行通訊的應(yīng)用中,使用多線程能提供良好的交互體驗(yàn),能對用戶的要求做出快速的反應(yīng)。本文主要介紹.NET中的線程在數(shù)據(jù)庫編程中的具體應(yīng)用(用VB.NET實(shí)現(xiàn))。
#T#創(chuàng)建VB.NET線程訪問數(shù)據(jù)庫
數(shù)據(jù)庫應(yīng)用中,特別是網(wǎng)絡(luò)數(shù)據(jù)庫訪問,因?yàn)榭赡芤L問的數(shù)據(jù)量較大,因此需要比較長的時間來得到結(jié)果,而一個良好的程序應(yīng)具有良好的交互性,在訪問數(shù)據(jù)庫時應(yīng)允許你的應(yīng)用程序?qū)τ脩舻幕顒颖M快做出響應(yīng),以提供豐富的用戶體驗(yàn)。利用多線程機(jī)制可以讓需要大量時間的操作在后臺運(yùn)行以快速響應(yīng)用戶的活動。下面的代碼訪問數(shù)據(jù)庫并返回數(shù)據(jù)表:
- Private sub GetDataFromDataBase()
- …
- m_table.Clear()
- m_sqlDataAdapter.Fill(m_table)
- …
- End Sub
創(chuàng)建Thread對象的新實(shí)例,需創(chuàng)建新的線程代理.ThreadStart線程代理可以指定生成線程時要執(zhí)行的方法名,但線程代理并不實(shí)際運(yùn)行線程.創(chuàng)建ThreadStart對象時,需指定線程開始執(zhí)行時要運(yùn)行的方法的指針,該方法不能接受任何參數(shù)。下面我們將上面的代碼分配給一個線程處理,并且啟動它:
- Dim myThreadStart as ThreadStart =New ThreadStart(AddressOf GetDataFromDataBase)
- Dim myThread as Thread=New Thread(myThreadStart)
- myThread.Start()
這樣當(dāng)進(jìn)行VB.NET線程訪問數(shù)據(jù)庫時,用戶可以繼續(xù)進(jìn)行處理。