![怎么使用Invoke函数](http://img.oxrm.com/UploadFiles/img20181015393.jpg)
已解决问题
谷歌m19600911用户在浏览436次提交了关于“葫芦娃怎么使用Invoke函数”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2024-08-22T01:14:18。希望大家能够帮助她。详细问题描述及疑问:期待您的答案,谢谢你帮我,祝你快乐,愿你事事如意 !
详细问题描述及疑问:期待您的答案,谢谢你帮我,祝你快乐,愿你事事如意 !
在多线程
正确的做法是将工
去调用,两者的区别就是
Framework框架的WinForm构建GUI程序界面时,如果要在控件的事件
,例如:某个按钮上的文本
voidBut
{
button.
}
这样的写法运行程序之后,可能会触发异常,异常信息大致是“不能从不是创建该控
成这种异常的原因在于,控件是在主线程中创建的(比如this.Controls.Add();),进入控件的事件响应函数时,是在控件所在的线
程,并不是主线
成画面混乱。不过这样的情况并不
正确的写法是在控件响应函数中调用控件的Invoke方法(其实如果大家以
Builder的话,也
而所谓的“一面响应操作,一面添加节点”
线程去做,我
线程负担
举个简单例子说明下使用方法,
usin
//启
Threadth
Threa
thread.Start();
//线
privatev
{
this.TextBox1.Text="我是
}
如果你像上面操作,在VS2005或2008里是会有异
正确的做法是用Invoke\BeginInvoke
usingSystem.Threadin
namespac
{
publicpartia
{
publicd
pu
{
InitializeComponent();
}
p
{
MyInvokemi=newMyInvoke(UpdateForm);
this.BeginInvoke(mi,newObject[]{"我是文本框","haha"});
}
publicvoidUpdateForm(stringparam1,stringparm2)
{
this.textBox1.Text=param1+parm2;
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
Threadthread=newThread(newThreadStart(DoWork));
thread.Start();
}
}
}
注意**的使用!
标签:Invoke