调用不是本线程创建的windows控件会报错
来源:互联网 发布:新速特软件安卓版 编辑:程序博客网 时间:2024/05/17 03:28
应该使用控件的InvokeRequired属性来判断是否需要Invoke,如果是则使用控件Invoke的方法来执行一个委托.
类似如下:
public partial class Form1 : Form
{
private delegate void myDel();
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Thread mT = new Thread(new ThreadStart(myThread));
mT.Start();
}
private void myThread()
{
int i=0;
while (i<5)
{
if (this.listBox1.InvokeRequired)
{
Invoke(new myDel(MyMethod));
}
i++;
}
}
private void MyMethod()
{
listBox1.Items.Add(DateTime.Now.ToString());
}
}
类似如下:
public partial class Form1 : Form
{
private delegate void myDel();
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Thread mT = new Thread(new ThreadStart(myThread));
mT.Start();
}
private void myThread()
{
int i=0;
while (i<5)
{
if (this.listBox1.InvokeRequired)
{
Invoke(new myDel(MyMethod));
}
i++;
}
}
private void MyMethod()
{
listBox1.Items.Add(DateTime.Now.ToString());
}
}
- 调用不是本线程创建的windows控件会报错
- C# 解决 调用线程非安全的控件xx不是在本线程上创建 异常
- 在Android线程中设置控件的值会报错
- 在Android线程中设置控件的值会报错
- windows跨线程调用控件的方法
- windows跨线程调用控件的方法
- 线程间操作无效:不是从创建控件“控件名”的线程访问它
- 线程间操作无效: 从不是创建控件(对 Windows 窗体控件进行线程安全调用)
- C#子线程创建新窗体心得(对Windows窗体控件进行线程安全调用)
- 对 Windows 窗体控件进行线程安全调用的方法
- 跨线程调用Windows窗体控件
- Windows 窗体控件进行线程安全调用
- 跨线程安全调用Windows 窗体控件
- 如何跨线程调用Windows窗体控件
- 如何跨线程调用Windows窗体控件
- Microsoft Visual Studio 不同的版本,创建对象会报错
- 线程的创建和调用
- Android 直接在子线程中创建Handler为什么会报错
- linux下源码安装软件
- 数字问题之最大公约数问题全解法归纳<Java实现>
- 写点看Harvard CS50 公开课的感受
- C++连接mysql数据库的两种方法
- Android-vold源码分析之startListener
- 调用不是本线程创建的windows控件会报错
- 安装 Heartbeat
- MySQL 5.5安装图解
- 细说单片机晶振电路中22pf或30pf电容的作用
- java中Applet和Application的区别
- 2012/11/26——2012/11/30周记
- CentOS5 (32bit)下,在 MySQL-Cluster 的 sql node 上安装 PHP5.4.9 时如何添加 mysql 以及 mysqli 扩展
- 数组问题之一维最大字段和问题<Java实现>
- Integer与int比较的问题