2010-04-01 54 views
3

如果編輯文本的代碼「屬於」包含窗體窗體的代碼中的單獨線程,我該如何編輯Windows窗體元素中的文本?我得到以下例外:跨線程Winforms控件編輯

跨線程操作無效:從其創建的線程以外的線程訪問的控件'textBox1'。

謝謝。

+0

請出示代碼....因爲這是不夠的,我們爲您服務! – t0mm13b 2010-04-01 19:28:13

+0

http://stackoverflow.com/questions/661561/how-to-update-the-gui-from-another-thread-in-c – Anthony 2013-08-14 16:35:11

回答

23

您將需要使用Control.Invoke方法是這樣的:

textbox1.Invoke((MethodInvoker)(() => 
    { 
    textbox1.Text="some text"; 
    })); 

檢查這篇文章太:Threading in UIs

+0

在類中插入'Action y;'並執行代碼'label1.Invoke (y =()=> label1.Text =「任何文本」);' – 2016-12-04 09:45:43