现在在学习一个程序,里面个语句看不懂
this.textBox1.Invoke(new MyDelegate(this.InvokeFun));
这句话是什么意思??
Invoke()又是干什么用的?
this.textBox1.Invoke(new MyDelegate(this.InvokeFun));
这句话是什么意思??
Invoke()又是干什么用的?
解决方案 »
- C# timer控件的问题
- GDI+画图,可以使用滚轴调整图形的大小!
- 神奇的速度,C#导出到Excel,真的不是一般的慢啊。
- 谁给推荐一个【C# winform 模拟登录博客网站并发布文章】的完整例子啊
- 有C++,VCMFC开发经验,怎么学.net
- 新建的c#讨论群,欢迎加入.17725036
- 写C++程序用VC6.0好还是.NET2003好?
- 请问高手为什么我直接用waveOutGetVolume(0,out volume)得不到音量呢
- SMTP如何设置代理服务器,伪装IP
- 有没有办法根据句柄判断窗口有没有工具栏?
- 关于using的问题
- 头疼,VS2005碰到Office2003怎么会这样?
winform在多线程处理过程中,很多时候需要多线程操作或者运行,(这种情况大部分原因是为了不让用户界面失去响应),所以需要从一个非控件的创建线程去访问控件,控制控件
如果你尝试在一个非控件的创建线程中对控件进行直接的操作那么你会得到一个异常...
更详细的实例是进度条类示例,如何在读取大型文件的时候又不让用户界面失去响应:子线程读取文件然后用delegate去推送数据到主线程控制进度条的显示
也有非安全的方法直接设置属性允许控件被跨线程调用,但是非安全,有的winform控件会无故失去响应,标准的:
void funShowBar(int i,string mesg)
{
if (this.InvokeRequired)
{
dlgtShowBar dg = new dlgtShowBar(funShowBar);
this.Invoke(dg, new object[] { i ,mesg});
}
else
{
if (i < progressBar1.Maximum)
{
progressBar1.Visible = true;
label2.Visible = true;
this.progressBar1.Value = i;
label2.Text = mesg;
}
else
{
progressBar1.Visible = false;
label2.Visible = false;
}
}
}
delegate void dlgtShowBar(int i,string mesg);