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)
让这个工作的好方法是什么?任何帮助是极大的赞赏.我正在学习这种对编程的热爱.
我正在尝试访问除创建之外的其他线程
实际错误是访问创建它的线程以外的线程上的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)
| 归档时间: |
|
| 查看次数: |
2949 次 |
| 最近记录: |