C winform程式設計中多執行緒操作控制項方法

2021-07-11 12:09:47 字數 2302 閱讀 6186

1

private

void form1_load(object

sender, eventargs e)27

8///

9///

定義乙個**

10///

11private

delegate

void

crossthreadoperationcontrol();

1213

private

void

backgroundprocess()

1425 label1.text = "

我在新執行緒裡訪問這個lable!";

26listbox1.items.add(label1.text);

27};

28listbox1.invoke(crossdelete);

29 }

收集一下,在c# winform程式設計中多執行緒操作控制項時,可以有下面種方法:

1. 又看到一種方法(2014.1.6):

1. 剛看到一種方法(2014.1.5):

1

private

void btntest_click(object

sender, eventargs e)223

else

2427}28

catch

2931

stopwatch.stop();

32 result =result;

33 result = string.concat(new

object

34);

40this.begininvoke(delegate

41);

45})

46.start();49}

50else

5154 }

1. 直接使用表示式和action()

1

private

void btninitenv_click(object

sender, eventargs e)216

17 thread thread = new thread(new threadstart(() =>

1840

else

if (sb.tostring().contains("

:-)"

))41

52}));

5354

if (flagfind || ++i > 20) //

找開標誌或10秒超時中斷

5558}59

60if (!flagfind)

61));71}

72}));

7374 thread.isbackground = true;75

thread.start();76}

77catch

(exception ex)

7881 }

2. 使用執行緒函式加action()

1

private

void btninitenv_click(object

sender, eventargs e)216

17 thread thread = new thread(new

threadstart(monitoroutputthread));

1819 thread.isbackground = true;20

thread.start();21}

22catch

(exception ex)

2326 }

執行緒函式:

1

private

void

monitoroutputthread()224

else

if (sb.tostring().contains("

:-)"

))25

36}));

3738

if (flagfind || ++i > 20) //

找開標誌或10秒超時中斷

3942}43

44if (!flagfind)

45));55}

56 }

3. 就是使用委託,這個網上例子很多,不再實現

c winform中多執行緒的使用

其實我主要就打算記錄兩個點。第乙個是關於大量任務下窗體的等待效果,或者說人機互動的友好性。關於這一點,我在網上也搜了相關的資料,但是發現都寫的大同小異。所以本文以乙個例子為基礎,整理出乙個彈框進度條提示的效果案例。同時我個人覺得這個案例的擴充套件和 簡潔性相對較好。廢話不多說,直接擼 如下圖所示的,...

C winform 多執行緒中建立等待窗體

1.首先建立乙個winform窗體,可講窗體的formborderstyle屬性設定為 none 將窗體的標題欄去掉。窗體中可放乙個picturebox控制項和兩個label控制項。其中picturebox控制項存放載入等待的。乙個label控制項可放置text文字。winform 如下 using...

C winform 多執行緒中建立等待窗體

1.首先建立乙個winform窗體,可講窗體的formborderstyle屬性設定為 none 將窗體的標題欄去掉。窗體中可放乙個picturebox控制項和兩個label控制項。其中picturebox控制項存放載入等待的。乙個label控制項可放置text文字。winform 如下 using...