交叉线程,访问除了它之外的线程

Fer*_*X32 4 c# multithreading thread-safety c#-2.0

我正在努力学习交叉/多线程,但我对这个概念非常困惑.我做了一个示例应用程序,假设通过一个线程在label.text上显示i.它不起作用,因为我试图访问除了创建之外的其他线程,我已经研究了很多,我仍然对Invoking,Delegation等感到困惑......这是我的代码:

private void s1_Click(object sender, EventArgs e)
{
    Thread Thread1 = new Thread(new ThreadStart(Start1));
    Thread1.Start();
}

public void Start1()
{
    for (int i = 0; i < 1000; i++)
    {
        displaytext("Working.........", i);
        Thread.Sleep(100);
    }
}

public void displaytext(string thetext, int number)
{
    t1.Text = thetext + " " + number;
}
Run Code Online (Sandbox Code Playgroud)

让这个工作的好方法是什么?任何帮助是极大的赞赏.我正在学习这种对编程的热爱.

Rom*_*kov 7

我正在尝试访问除创建之外的其他线程

实际错误是访问创建它的线程以外的线程上的Windows窗体控件.

修复:使用Invoke.

public void Start1()
{
    for (int i = 0; i < 1000; i++)
    {
        t1.Invoke(() => displaytext("Working.........", i));
        Thread.Sleep(100);
    }
}
Run Code Online (Sandbox Code Playgroud)