为了提高系统的响应速度,常常使用多线程获取数据并在控件中显示出来。但是在另一个进程中是不允许访问界面控件的。
如下面一段在另一线程中设置textbox1.的值,在运行时是会报错的:
 Thread One = new Thread(new ThreadStart(ThreadFuncOne));

Private Void ThreadFuncOne()
{
   textBox1.txt="AAAA";
}
下面是我写的一个小demo,点击开始两个线程同时开始循环线两ListBox中插入项,
最后你可以看到ListBox基本时同时完成插入项。
多线程窗口访问
实现的代码如下:

多线程窗口访问
多线程窗口访问        
private void button1_Click(object sender, EventArgs e)

 同时可以将上面的Invoke的方法改为BeginInvoke,异步执行。

相关文章: