C#中利用委托实现多线程跨线程操作
来源:互联网 发布:urlencode java 编辑:程序博客网 时间:2024/06/01 10:39
在使用VS2005的时候,如果你从非创建这个控件的线程中访问这个控件或者操作这个控件的话就会抛出这个异常。这是微软为了保证线程安全以及提高代码的效率所做的改进,但是也给大家带来很多不便。
其实解决这个问题有两种方法:
一,是通过设置
System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;
在你的程序初始化的时候设置了这个属性,而且在你的控件中使用的都是微软Framework类库中的控件的话,系统就不会再抛出你上面所说的这个错误了。
二,就是委托了,个人建议用这种方法
首先在WinForm窗体中拖入ListBox控件,然后参照以下代码:
Thread t1;//声明一个全局线程
private void Form1_Load(object sender, EventArgs e)
{
t1 = new Thread(new ThreadStart(BackgroundProcess));
t1.Start(); //开始
}
delegate void aa();
private void BackgroundProcess()
{
// 将委托实例化
aa a= delegate()
{
for (int i = 0; i < 50; i++)
{
listBox1.Items.Add("Iterations: " + i.ToString());
Thread.Sleep(300);
listBox1.Refresh();
}
};
listBox1.Invoke(a);
}
以上代码大家如果不懂请跟贴 我会详细解答!
- C#中利用委托实现多线程跨线程操作
- C#中利用委托实现多线程跨线程操作
- C#中利用委托实现多线程跨线程操作
- c#中使用委托操作线程
- C#中工作线程和多线程跨线程操作控件
- VC中利用多线程技术实现线程之间的通信(二)---线程的管理和操作
- C# 委托实现跨线程更新控件
- c# 使用委托操作线程
- C#利用委托跨线程更新UI数据
- C#利用委托跨线程更新UI数据
- C#利用委托跨线程更新UI数据
- c#利用委托跨线程调用UI控件完整使用方法
- C#利用委托进行多线程访问控件
- C# 中线程和委托
- VC中利用多线程技术实现线程之间的通信
- VC中利用多线程技术实现线程之间的通信
- VC中利用多线程技术实现线程之间的通信
- VC中利用多线程技术实现线程之间的通信
- 实战VC时间控制函数
- Javascript - Prototype Based Language
- C#(WINFORM)实现模拟POST发送请求登录网站
- C#得到系统进程和结束某个指定的进程
- 案例分析:session丢失及appdomain回收
- C#中利用委托实现多线程跨线程操作
- 重命名域控制器
- 层的隐藏与显示
- 开通了CSDN Blog
- 根据字段内容查找表名
- 4月9日下午去神州数码面试算法答案----求字符串最大公串
- Visual C#常用函数和方法集汇总
- 今天做了一个公司的面试题目C#实现词法分析器
- WinSock学习笔记