使用线程,防止当前程序被阻塞
在編寫Windows Form程序時(shí)有時(shí)需要編寫一個(gè)處理大事件的函數(shù),這導(dǎo)致了程序的運(yùn)行時(shí)間變得很長,這時(shí)問題就出現(xiàn)了,當(dāng)程序沒有處理完畢之前當(dāng)前窗體被鎖死了,而且用戶如果此時(shí)點(diǎn)擊窗體的其他部分,便會(huì)出現(xiàn)沒有響應(yīng)的標(biāo)識,這時(shí)用戶就會(huì)以為程序死了,而去關(guān)閉程序,如果我們沒有對這種操作作相應(yīng)的處理,很容易導(dǎo)致數(shù)據(jù)出現(xiàn)錯(cuò)誤。這時(shí)我們可以采用另開一個(gè)線程的方法來處理時(shí)間比較長的程序,這樣當(dāng)前窗體就不會(huì)被鎖死,預(yù)估計(jì)一下處理時(shí)間需要的時(shí)間,然后還可以根據(jù)這個(gè)時(shí)間做一個(gè)進(jìn)度條的顯示,讓用戶了解到程序處理的進(jìn)度,就會(huì)給用戶一個(gè)很良好的感覺。
下面是一個(gè)另開線程的小例子,并有進(jìn)度條顯示。
我們用到了System.Threading命名空間中的Thread類來創(chuàng)建一個(gè)線程對象,然后將線程的ThreadStart方法代理重新指向到我們要處理的函數(shù)即可,然后用它的IsBackground屬性將其設(shè)置為后臺(tái)線程,防止被用戶誤操作而被殺掉,然后調(diào)用Thread對象的Start來啟動(dòng)這個(gè)線程即可。
??? 使用線程的小例子
轉(zhuǎn)載于:https://www.cnblogs.com/Bear-Study-Hard/archive/2006/04/14/374957.html
總結(jié)
以上是生活随笔為你收集整理的使用线程,防止当前程序被阻塞的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 刚接触git,提交文件时,遇到no ch
- 下一篇: android-api28转换到api1