线程间操作无效: 从不是创建控件“textBox1”的线程访问它。
这时通过调用窗体的Invoke方法对TextBox控件进行赋值即可:
delegate void TodoInvoke(string msg);
private void Todo(string msg)
{
textBox1.Text = msg;
}
private void btn1_Click(object sender, EventArgs e)
{
Thread thread = new Thread(() =>
{
this.Invoke(new TodoInvoke(Todo), "mzwu.com");
});
thread.Start();
}.NET Framework 3.5+无需单独声明委托,可用自带的委托Action:
private void btn1_Click(object sender, EventArgs e)
{
Thread thread = new Thread(() =>
{
this.Invoke(new Action<string>(delegate (string msg) { textBox1.Text = msg; }), "mzwu.com");
});
thread.Start();
}
评论(0)
暂无评论。