欢迎光临

木子屋

标题: WinForm多线程编程及线程间控件赋值示例

作者: dnawo

日期: 2013-08-30 06:24 PM

分类: Win编程

内容: 若在线程中对TextBox控件赋值会出错，提示：
引用内容线程间操作无效: 从不是创建控件“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)

登录

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.711 ms

返回

标题: WinForm多线程编程及线程间控件赋值示例

你没有权限发表评论

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.727 ms

返回

暂无评论

返回

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.742 ms

返回