同步和非同步訪問資料庫

2022-02-21 04:49:43 字數 989 閱讀 2323

我們都知道,某些場合下,在對資料庫進行訪問時,為了避免同步訪問資料時所帶來的延遲,我們需要改進設計,以提高程式執行效率。一方面,這可以給使用者以良好的使用體驗;另一方面,也降低了程式崩潰的可能性。為實現這一目的,我們採用非同步方式來訪問資料庫。先看下面的**

private

void

button2_click(

object

sender, eventargs e) 

}label1.text 

=ver;

}這個例子非常簡單,這是同步的例子,:首先建立乙個連線,開啟連線後,建立乙個sqlcommand,並設定命令,最後將執行後的值給到label控制項.可以看到,整個例子都是在乙個執行緒內進行的,並沒有涉及到其他的執行緒,再看一下下面的例子.

private

void

button2_click(

object

sender, eventargs e) 

可以看到,上面的**就是非同步讀取資料庫,實際上就是開啟了另外的乙個執行緒,下面為處理**

public

void

processresult(iasyncresult ar) }}

}下面是委託的**

//宣告乙個委託** 

public

delegate

void

labelhandler(

string

text); 

public

void

updatelabel(

string

text) 

值得注意的是,在多執行緒程式設計中,我們經常要在工作執行緒中去更新介面顯示,而在多執行緒中直接呼叫介面控制項的方法是錯誤的做法,正確的做法是將工作執行緒中涉及更新介面的**封裝為乙個方法,通過 invoke 或者 begininvoke 去呼叫,兩者的區別就是乙個導致工作執行緒等待,而另外乙個則不會。

非同步訪問資料庫 經典之三

public delegate function sqlop byval psql as string as dataset private sub button1 click byval sender as system.object,byval e as system.eventargs han...

訪問資料庫 訪問資料庫

程式執行的時候,資料都是在記憶體中的。當程式終止的時候,通常都需要將資料儲存到磁碟上,無論是儲存到本地磁碟,還是通過網路儲存到伺服器上,最終都會將資料寫入磁碟檔案。而如何定義資料的儲存格式就是乙個大問題。如果我們自己來定義儲存格式,比如儲存乙個班級所有學生的成績單 名字成績 michael99 bo...

訪問資料庫 資料庫並行訪問

作者姓名 neo chen 陳景峰 暱稱 netkiller 呼號 bg7nyt 手機 86 13113668890 多維度架構 知乎 www.zhihu.com 這裡主要講述有關開發中遇到的資料庫並行問題 防止並行顯示背景 我們有乙個order訂單表,工作流如下 建立訂單 訂單分配 訂單審核 批准...