线程中更改UI void changecolor(Color cl) { this.Invoke(new Action(()=>{ button2.BackColor = cl; })); } 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 使用Form的InvokeRequired来判断,并使用Form的Invoke方法调用新建的委托实例 可否通俗地说一下1, this.Invoke()的意思2,new Action()的意思3,() =>{语句;}的意思 可否通俗地说一下1, this.Invoke()的意思2,new Action()的意思3,() =>{语句;}的意思1, this.Invoke()的意思 == 委托方法2,new Action()的意思 == 内部定位的委托3,() =>{语句;}的意思 这个是Lamada语句 可否通俗地说一下1, this.Invoke()的意思2,new Action()的意思3,() =>{语句;}的意思1, this.Invoke()的意思 == 委托方法2,new Action()的意思 == 内部定位的委托3,() =>{语句;}的意思 这个是Lamada语句 委托的意思是不是 “叫别人帮我去做事,而这事的结果是怎么样 我不理”? 可否通俗地说一下1, this.Invoke()的意思2,new Action()的意思3,() =>{语句;}的意思1, this.Invoke()的意思 == 委托方法2,new Action()的意思 == 内部定位的委托3,() =>{语句;}的意思 这个是Lamada语句 委托的意思是不是 “叫别人帮我去做事,而这事的结果是怎么样 我不理”?差不多是这个意思,相当于你 赚到了钱(参数),然后你把这个钱给你儿子花,至于怎么花(里面程序功能实现),你不用管。 http://www.cnblogs.com/networkcomms/p/4294003.html //我的目的是:在线程中调用一个函数,函数的功能是把按键参数传进去,然后改变颜色public void SetBtnColor(ref Button btn)//这个要可以在线程中被调用{ this.Invoke(new Action(() => { btn.BackColor = Color.Red; }));//但是Lamada又不接收 ref参数 怎么办} 默认会报错,可以把禁止跨线程访问UI设置为false,这样就不报错了,但这时候你需要自己去判断多线程会不会对UI造成错误影响 //我的目的是:在线程中调用一个函数,函数的功能是把按键参数传进去,然后改变颜色public void SetBtnColor(ref Button btn)//这个要可以在线程中被调用{ this.Invoke(new Action(() => { btn.BackColor = Color.Red; }));//但是Lamada又不接收 ref参数 怎么办}把Ref去掉,直接转对象就可以了。别乱看书,误人 1,如何设置 禁止跨线程访问UI为false呢?2,线程中访问ui会出现什么样的错误呢?(我的理解是 UI本身有一个线程处理,和自定义UI同时访问同一个资源会出错 但也不会是什么致命错误) c#中多线程访问winform控件的若干问题小结 两个简单的问题 关于DropDownList和浮动操作栏样式请教? 后台触发前台脚本事件的问题 这样的DataGridView如何实现?(分不够的话再加) 判断选择内网或者外网连接问题? 求解delegate问题 不知道如何解决数据库更新问题了,请各位高手帮帮忙 有多少公司现在用VS.net做C/S项目? 在RichTextBox中选择文本怎么不灵活啊?总是选择多个字符. 怎样播放控制MP3文件! 谁更重要? 关于两个DataTable获取差异和共同部分
可否通俗地说一下
1, this.Invoke()的意思
2,new Action()的意思
3,() =>{语句;}的意思
可否通俗地说一下
1, this.Invoke()的意思
2,new Action()的意思
3,() =>{语句;}的意思
1, this.Invoke()的意思 == 委托方法
2,new Action()的意思 == 内部定位的委托
3,() =>{语句;}的意思 这个是Lamada语句
可否通俗地说一下
1, this.Invoke()的意思
2,new Action()的意思
3,() =>{语句;}的意思
1, this.Invoke()的意思 == 委托方法
2,new Action()的意思 == 内部定位的委托
3,() =>{语句;}的意思 这个是Lamada语句
委托的意思是不是 “叫别人帮我去做事,而这事的结果是怎么样 我不理”?
可否通俗地说一下
1, this.Invoke()的意思
2,new Action()的意思
3,() =>{语句;}的意思
1, this.Invoke()的意思 == 委托方法
2,new Action()的意思 == 内部定位的委托
3,() =>{语句;}的意思 这个是Lamada语句
委托的意思是不是 “叫别人帮我去做事,而这事的结果是怎么样 我不理”?
差不多是这个意思,相当于你 赚到了钱(参数),然后你把这个钱给你儿子花,至于怎么花(里面程序功能实现),你不用管。
public void SetBtnColor(ref Button btn)//这个要可以在线程中被调用
{
this.Invoke(new Action(() => { btn.BackColor = Color.Red; }));//但是Lamada又不接收 ref参数 怎么办
}
public void SetBtnColor(ref Button btn)//这个要可以在线程中被调用
{
this.Invoke(new Action(() => { btn.BackColor = Color.Red; }));//但是Lamada又不接收 ref参数 怎么办
}把Ref去掉,直接转对象就可以了。别乱看书,误人
1,如何设置 禁止跨线程访问UI为false呢?
2,线程中访问ui会出现什么样的错误呢?(我的理解是 UI本身有一个线程处理,和自定义UI同时访问同一个资源会出错 但也不会是什么致命错误)