1收集一下,在c# winform程式設計中多執行緒操作控制項時,可以有下面種方法: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 }
1. 又看到一種方法(2014.1.6):
1. 剛看到一種方法(2014.1.5):
1private
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()
1private
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()
1private
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 }
執行緒函式:
1private
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...