C 實現跨執行緒操作控制項方法

2022-09-26 08:12:09 字數 944 閱讀 2816

由於在.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停止響應一段時間。既然啟動了執行緒,就避免不了執行緒之間資料傳遞的事情,相信你有很多種辦法能解決,總之注意同...