dxc
一般來說,直接在子執行緒中對窗體上的控制項操作是會出現異常,這是由於子執行緒和執行窗體的執行緒是不同的空間,因此想要在子執行緒來操作窗體上的控制項,是不可能簡單的通過控制項物件名來操作,但不是說不能進行操作,微軟提供了
invoke
的方法,其作用就是讓子執行緒告訴窗體執行緒來完成相應的控制項操作。
現在用乙個用執行緒控制的程序條來說明,大致的步驟如下:
1.建立
invoke
函式,大致如下:
//////
delegate function to be invoked by main thread
///
private
void invokefun()
2.子執行緒入口函式:
//////
thread function inte***ce
///
private
void threadfun()
}
3.
建立子執行緒:
thread thdprocess = new thread( new threadstart( threadfun ) );
thdprocess.start();
備註:using
system.threading;
private
system.windows.forms.progressbar prgbar;
執行後的效果如下圖所示:
如何在子執行緒中操作窗體上的控制項
一般來說,直接在子執行緒中對窗體上的控制項操作是會出現異常,這是由於子執行緒和執行窗體的執行緒是不同的空間,因此想要在子執行緒來操作窗體上的控制項,是不可能簡單的通過控制項物件名來操作,但不是說不能進行操作,微軟提供了 invoke 的方法,其作用就是讓子執行緒告訴窗體執行緒來完成相應的控制項操作。...
如何在子窗體中操作主窗體上的控制項
很多人都苦惱於如何在子窗體中操作主窗體上的控制項,或者在主窗體中操作子窗體上的控制項。相比較而言,後面稍微簡單一些,只要在主窗體中建立子窗體的時候,保留所建立子窗體物件即可。下面重點介紹前一種,目前常見的有兩種方法,基本上大同小異 第一種,在主窗體類中定義乙個靜態成員,來儲存當前主窗體物件,例如 p...
如何跨越執行緒呼叫窗體上的控制項
ui 的響應速度 使得一切執行顯得更為快速。在 windows 中進行多執行緒程式設計曾經是 c 開發人員的專屬特權,但是現在,可以使用所有相容 microsoft net 的語言來編寫。不過 windows 窗體體系結構對執行緒使用制定了嚴格的規則。如果只是編寫單執行緒應用程式,則沒必要知道這些規...