请教一个多线程的问题,为什么在vs2003和2005中会不一样
using System;using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading;
namespace wwwwwwwwwwwwwwwwww
{
public partial class Form4 : Form
{
public Form4()
{
InitializeComponent();
}
private void Form4_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
B v = new B(label4, 100);
Thread t = new Thread(new ThreadStart(v.a));
t.Start();
}
}
}
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.Threading;
namespace wwwwwwwwwwwwwwwwww
{
public class B
{
Control l;
int i;
public B(Label l, int i)
{
this.l = l;
this.i = i;
}
public void a()
{
Random ra = new Random(i);
while (true)
{
Thread.Sleep(100);
l.Text = ra.Next(1, 23).ToString();
}
}
}
}
这段代码,在03上没有任何错误,但是在05上,会报一个,异常是:线程间操作无效: 从不是创建控件“label4”的线程访问它。
请问一下,这是为什么,谢谢!!!
--------------------编程问答-------------------- 这段代码,在05上运行的时候,有异常,但是不运行项目,在这个项目的bin目录下点那个exe的文件运,没有一点问题,我想知道这是为什么啊?? --------------------编程问答-------------------- 03和05在线程设计上改变比较大,你bin下的exe是不是05编译的吧,
03的编译好的程序当然不会出错啦,05在它线程里要操作其他线程上的对象,需要变成单线程的。
补充:.NET技术 , C#