2012-03-17 55 views
-1

可能重複:
Cross-thread operation not valid文本框在新線程

我的功能,我把新的線程,但它不工作。我有個例外:

跨線程操作無效:從 線程訪問的控件'textBox1',而不是它創建的線程。

我的代碼:

void licz() 
    { 
     int wynik = 0; 
     for (int i = 0; i < 200; i++) 
     { 

      wynik =+ i; 
      textBox1.Text += wynik.ToString() + Environment.NewLine; 

     } 
     MessageBox.Show("Wynik: " + wynik); 
    } 

    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     Thread th1 = new Thread(licz); 
     th1.Start(); 


    } 

如何解決?

回答

1

您不能從另一個線程(UI線程)創建的線程訪問UI元素。您的替代方案是使用回調函數,引發您的UI線程訂閱的事件,如果您使用WPF或Silverlight,則使用Dispatcher

如果您提供更多關於您正在嘗試實現的技術和您正在使用的技術的詳細信息,我可以給出更完整的答案。