国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
經(jīng)典講解VB.NET線程方法之訪問數(shù)據(jù)庫
    線程是操作系統(tǒng)分配處理器時間的基本單元,線程可以在單個執(zhí)行線程執(zhí)行的同時運行多個活動,文章主要就VB.NET線程方法訪問數(shù)據(jù)庫進行詳細介紹。

    在向大家詳細介紹VB.NET線程之前,首先讓大家了解下線程,然后全面介紹VB.NET線程方法。線程是操作系統(tǒng)分配處理器時間的基本單元,線程可以在單個執(zhí)行線程執(zhí)行的同時運行多個活動,支持搶先多任務(wù)處理的操作系統(tǒng)可以創(chuàng)建多個線程并通過時間片輪轉(zhuǎn)的方式使它們同時運行。在需要良好用戶交互的應(yīng)用以及與網(wǎng)絡(luò)和數(shù)據(jù)庫進行通訊的應(yīng)用中,使用多線程能提供良好的交互體驗,能對用戶的要求做出快速的反應(yīng)。本文主要介紹.NET中的線程在數(shù)據(jù)庫編程中的具體應(yīng)用(用VB.NET實現(xiàn))。

    1 創(chuàng)建數(shù)據(jù)庫訪問線程

    在數(shù)據(jù)庫應(yīng)用中,特別是網(wǎng)絡(luò)數(shù)據(jù)庫訪問,因為可能要訪問的數(shù)據(jù)量較大,因此需要比較長的時間來得到結(jié)果,而一個良好的程序應(yīng)具有良好的交互性,在訪問數(shù)據(jù)庫時應(yīng)允許你的應(yīng)用程序?qū)τ脩舻幕顒颖M快做出響應(yīng),以提供豐富的用戶體驗。利用多線程機制可以讓需要大量時間的操作在后臺運行以快速響應(yīng)用戶的活動。下面的代碼訪問數(shù)據(jù)庫并返回數(shù)據(jù)表:

            
    1. Private sub GetDataFromDataBase()  
    2. …  
    3. m_table.Clear()  
    4. m_sqlDataAdapter.Fill(m_table)  
    5. …  
    6. End Sub  

    創(chuàng)建Thread對象的新實例,需創(chuàng)建新的線程代理.ThreadStart線程代理可以指定生成線程時要執(zhí)行的方法名,但線程代理并不實際運行線程.創(chuàng)建ThreadStart對象時,需指定線程開始執(zhí)行時要運行的方法的指針,該方法不能接受任何參數(shù)。下面我們將上面的代碼分配給一個線程處理,并且啟動它:

            
    1. Dim myThreadStart as ThreadStart =New ThreadStart(AddressOf GetDataFromDataBase)  
    2. Dim myThread as Thread=New Thread(myThreadStart)  
    3. myThread.Start()  

    這樣當進行數(shù)據(jù)庫的訪問時,用戶可以繼續(xù)進行處理。

    2.VB.NET線程方法使用事件

    調(diào)用了線程的start方法,并不能確保其中的方法馬上執(zhí)行完,而要得到數(shù)據(jù)訪問的結(jié)果又必須等其中的方法執(zhí)行完畢。如果在運行線程后采用循環(huán)查詢的方法顯然影響了交互性,事件是從線程方法返回數(shù)據(jù)的好方法。只要在VB.NET線程方法所在的類中定義一個事件,在VB.NET線程方法中發(fā)出事件,而在窗體類中生成代理。
    首先在dealDataBase類聲明后加進事件:

            
    1. Public Class dealDataBase  
    2. Public Event GetDataComplete(ByVal e As DtatTable)  
    3. …  
    4. End Class  

    在類dealDataBase的GetDataFromDataBase()方法中加入發(fā)出事件的代碼,放在m_sqlDataAdapter.Fill(m_table)后:

            
    1. Public sub GetDataFromDataBase()  
    2. …  
    3. m_sqlDataAdapter.Fill(m_table)  
    4. RasiseEvent GetDataComplete(m_table)  
    5. …  
    6. End Sub   

    下面在窗體類中生成代理

            
    1. Private Sub dealData (ByVal e As DataTable)  
    2. '處理數(shù)據(jù)表  
    3. End Sub  

    在創(chuàng)建線程并運行線程的代碼中進行事件連接,事件連接代碼放在運行線程前, dealDataBase類實例化后:

            
    1. AddHandler myDB. GetDataComplete,AddressOf dealData  

    這樣,當線程方法執(zhí)行完畢就會發(fā)出事件,而dealData方法會響應(yīng)事件并做出處理。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
深入解讀VB.NET多線程代碼示例 - 51CTO.COM
VB.NET多線程開發(fā)實例
VB.net學習筆記(二十五)Threading 命名空間
VB.NET連接SQLite數(shù)據(jù)庫的方法
VB.NET連接遠程數(shù)據(jù)庫技巧分享_ASP.Net之家|DotNet之家 - .NET|C...
VB6.0和VB.NET對比
更多類似文章 >>
生活服務(wù)
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服