如何跨线程访问控件
来源:互联网 发布:java request用法 编辑:程序博客网 时间:2024/05/29 09:35
public Thread MyThread;
public delegate void settextDelegate();
//从子线程更新进度条数据
public void UpdateProgress()
{
if (this.label1.InvokeRequired)
{
settextDelegate st = new settextDelegate(UpdateProgress);
this.Invoke(st);
}
else
{
settext();
}
}
public void settext()
{
for (int i = 1; i < 101; i++)
{
Thread.Sleep(50);
int MyValue = i;
this.progressBar1.Value = MyValue;
this.label1.Text = "当前模拟执行进度完成百分比:" + MyValue.ToString() + "%";
}
this.button1.Text = "启动显示执行进度";
}
//启动显示执行进度
private void button1_Click(object sender, EventArgs e)
{
if(this.button1.Text=="启动显示执行进度")
{
this.button1.Text="停止显示执行进度";
MyThread=new Thread(new ThreadStart(UpdateProgress));
MyThread.Start();
}
else
{
this.button1.Text="启动显示执行进度";
MyThread.Abort();
}
}
注意2点
if (this.label1.InvokeRequired)
获取一个值,该值指示调用方法对控件进行方法调用时 是否必须调用invoke方法,因为调用方法位于创建控件所在线程以外的线程中。
settextDelegate st = new settextDelegate(UpdateProgress);
this.Invoke(st);
this.invoke 含义:
在拥有控件的基础窗口句柄的线程上,用指定的参数列表执行指定委托。
- 如何跨线程访问控件
- 如何跨线程访问控件
- 跨线程访问控件
- 跨线程访问控件
- 如何解决DotNET中跨线程访问控件的问题
- 跨线程访问窗体控件
- 跨线程的控件访问
- .NET跨线程访问控件
- 跨线程访问webBrowser控件
- C# 跨线程访问控件
- 跨线程访问window控件
- c#跨线程访问控件
- c#跨线程访问控件
- .net3.0 中跨线程访问控件
- C#跨线程访问WinForm控件
- C#中的跨线程访问窗体控件
- .net3.0 中跨线程访问控件
- 跨线程程访问Win form 控件
- document.compatMode属性
- asp.net 2.0 读写配置文件
- DOS命令
- eVC下CString 操作指南
- flex入门
- 如何跨线程访问控件
- C++练习遇到问题,要注意赋值操作符“=”和比较操作符“==”的区别。
- 奥巴马:无畏的希望
- 又见兼容性问题 this.style.cursor='hand' 让我们来CSS HACK
- MetaFile and Draw
- 编写更快的托管代码:了解开销情况
- 编程实现木马的Activex启动 注入IE启动
- 小程序
- 视图的用处