2012-03-17 24 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

如果您提供更多关于您正在尝试实现的技术和您正在使用的技术的详细信息,我可以给出更完整的答案。