由於在.net平台下winform、wpf禁止跨執行緒直接訪問控制項,因此在必須跨執行緒訪問控制項的時候採用非同步方式。
1、winform專案中跨執行緒訪問控制項:
編寫乙個winform小例項:在做winform專案中,有時為了將系統執行的狀態實時顯示到form中,因此新增乙個richtextbox控制項實時顯示系統執行日誌。本例實現的操作是將日誌以字串的形式寫入richtextbox控制項,因為是實時顯示,所以涉及到跨執行緒輸入的問題。
複製** **如下:
private delegate void setrichtexbox(string s);
public void set txt)
); }
else
}private void set(string txt)
控制項的invokerequired的值為true時,說明有乙個不屬於建立它的執行緒要訪問它,此時需要採用非同步的方式進行操作。
2、wpf專案中跨執行緒訪問控制項:
wpf的page頁中,加入乙個button控制項和textbox控制項,點選button實現新增textbox控制項中的內容。
複製** **如下:
private void button2_click(object sender, routedeventargs e)
private delegate void writedelegate(string str);
private void writemethod(string str)
public void startserver()
private delegate string gettexthandle(control control);
private string gettext(control control)
else
else
&n程式設計客棧bsp;
}}總結:
C 跨執行緒操作控制項
在看別人 的時候總是會invoke和begininvoke方法,雖然大致明白是什麼意思,但卻不能很好的使用,上網查了很多資料,剛巧看到自己求學期間 過一篇博文 c invoke和begininvoke的區別 net平台下winform wpf禁止跨執行緒直接訪問控制項,因此在必須跨執行緒訪問控制項的...
C 跨執行緒操作控制項的執行緒安全方法
c 跨執行緒操作控制項的執行緒安全方法 在c 中,經常用到這樣乙個場景,windows form程式啟動乙個工作者執行緒執行一部分工作,這樣做是為了避免速度慢的工作如果直接呼叫會使得主form停止響應一段時間。既然啟動了執行緒,就避免不了執行緒之間資料傳遞的事情,相信你有很多種辦法能解決,總之注意同...
C 跨執行緒操作控制項的執行緒安全方法
c 跨執行緒操作控制項的執行緒安全方法 在c 中,經常用到這樣乙個場景,windows form程式啟動乙個工作者執行緒執行一部分工作,這樣做是為了避免速度慢的工作如果直接呼叫會使得主form停止響應一段時間。既然啟動了執行緒,就避免不了執行緒之間資料傳遞的事情,相信你有很多種辦法能解決,總之注意同...