线程间操作无效: 从不是创建控件“**”的线程访问它 利用委托处理
来源:互联网 发布:大数据技术 编辑:程序博客网 时间:2024/05/29 06:42
System.Threading.Thread th;
public delegate void SetValueEventHandler(Label label, string text);
private void btnUpdate_Click(object sender, EventArgs e)
{
th = new System.Threading.Thread(new System.Threading.ThreadStart(do1));
th.Start();
}
private void SetValueEvent(Label label, string text)
{
label.Text = text;
}
public void do1()
{
SetValueEventHandler setValue = new SetValueEventHandler( SetValueEvent );
for( int i =0; i < 100000; i++ )
{
Invoke(setValue,new object[]{label1,i.ToString()} );
}
}
还有一种更简单的就是在线程开始前
Control.CheckForIllegalCrossThreadCalls = false;
委托就可以完全不要了
/// <summary>
/// 利用委托处理
/// </summary>
/// <param name="btn"></param>
/// <param name="b"></param>
private delegate void SetValueEventHandler(Button btn, bool b);
private void SetValuesEvent(Button btn,bool b)
{
btn.Enabled = b;
}
下面是线程启动时加入的
//this.btnLoginOk.Enabled = true;
SetValueEventHandler setValue = new SetValueEventHandler(SetValuesEvent);
Invoke(setValue, new object[] {this.btnLoginOk,true });
- 线程间操作无效: 从不是创建控件“**”的线程访问它 利用委托处理
- 线程间操作无效:从不是创建控件 的线程访问它 使用委托
- invoke委托解决“线程间操作无效: 从不是创建控件的线程访问它”的问题
- WinForm中线程问题:线程间操作无效: 从不是创建控件“...”的线程访问它
- c#线程问题:线程间操作无效:从不是创建控件 的线程访问它
- WinForm中线程问题:线程间操作无效: 从不是创建控件“...”的线程访问它
- “线程间操作无效:从不是创建控件“XX”的线程访问它”的解决方法
- 线程间操作无效: 从不是创建控件“”的线程访问它的解决方法
- 小结“线程间操作无效: 从不是创建控件的线程访问它” 错误的解决方法
- 小结“线程间操作无效: 从不是创建控件的线程访问它” 错误的解决方法
- 线程间操作无效: 从不是创建控件“”的线程访问它~~~的解决方法!
- 线程间操作无效: 从不是创建控件“”的线程访问它~~~的解决方法~
- 小结“线程间操作无效: 从不是创建控件的线程访问它” 错误的解决方法
- 小结“线程间操作无效: 从不是创建控件的线程访问它” 错误的解决方法
- 线程间操作无效 从不是创建控件“___”的线程访问它”解决方法的疑惑
- 线程间操作无效: 从不是创建控件“”的线程访问它~~~的解决方法
- C# 线程间操作无效: 从不是创建控件“”的线程访问它~~~的解决方法~
- 线程间操作无效: 从不是创建控件“”的线程访问它~~~的解决方法~
- JSF1.2学习笔记
- 中英对照:在电影台词中品人生
- 我想学习了解一下关于即时通讯的资料
- 3种备份策略
- linux 进程的资源使用
- 线程间操作无效: 从不是创建控件“**”的线程访问它 利用委托处理
- extjs Grid 时,默认初始选中
- 堆、栈、字符数组、字符指针和Sizeof()
- inux下去掉windows文本的多余的回车符(^M)
- 什么是ODS
- QuickTest 的 Flex 测试插件
- C++和C#混合生成.NET程式
- java默认包的使用
- 从MFC到.NET的痛苦转变(ISO C++ -----C++ CLI)