多執行緒開發

2022-02-23 08:52:48 字數 1354 閱讀 2230

本文章**: 感覺蕭蕭空間分享。 

前不久寫了乙個專案,其中需要處理大量的資料,這些資料都是記錄型的,對這些資料進行處理是乙個非常耗時的事情,.net在處理這些使用的過程中,就好像宕機一樣一動不動。這樣給使用者的感覺非常的不好。例如如下的例子,我們在乙個窗體上放置乙個progressbar,然後對progressbar進行迴圈新增,例如:

1private

void

btnprocess_click(

object

sender, eventargs e)215

}還是在原來的窗體上,我們使用執行緒的方式去處理。

1delegate

void

delegatetype(

intx);

2delegatetype thedelegate;34

intstartfrom, endto;56

private

void

btnstartthreaded_click(

object

sender, eventargs e)721

22void

messagehandler(

intnprogress)

2327

28void

processroutine()29}

這個是使用執行緒的方法去處理,但是問題還是有的,雖然執行緒處理了使用者介面效果的問題,但是對於大資料量處理過程中,很耗時的,使用者可能會去取消自己的操作,所以我們要新增方法去對自己的執行緒取消。微軟這個方面做的很好,它提供了manualresetevent的委託類,可以輕鬆的對執行緒進行取消。**如下:

首先新增manualresetevent的委託:

=new

manualresetevent(

false

private

void

btncancelbutton_click(

object

sender, eventargs e)

this

.begininvoke(

this

.thedelegate, nvalue);

thread.sleep(

200);}}

另外一點,我們還可以對執行緒進行擴充,就是將執行緒的暫停和繼續,這個就很簡單了,就是對執行緒的suspend和resume,只要再新增按鈕設定執行緒的suspend和resume就可以了。**如下:

bool

isthreadpaused;

private

void

btnpause_click(

object

sender, eventargs e)

else

}

iOS開發 多執行緒篇 多執行緒介紹

一 程序和執行緒 1 什麼是程序 程序是指在系統中正在執行的乙個應用程式 每個程序之間是獨立的,每個程序均執行在其專用且受保護的記憶體空間內 比如同時開啟迅雷 xcode,系統就會分別啟動2個程序 通過 活動監視器 可以檢視mac系統中所開啟的程序 3 執行緒的序列 1個執行緒中任務的執行是序列的 ...

iphone開發 多執行緒

from 舉例說明怎麼簡單的建立乙個子執行緒。用到的類是nsthread類,這裡使用detachnewtheadselector totagaet withobject建立乙個執行緒。函式setupthread nsarray userinfor。通過userinfor將需要的資料傳到執行緒中。函式...

iphone開發 多執行緒

舉例說明怎麼簡單的建立乙個子執行緒。用到的類是nsthread類,這裡使用detachnewtheadselector totagaet withobject建立乙個執行緒。函式setupthread nsarray userinfor。通過userinfor將需要的資料傳到執行緒中。函式定義 vo...