跨线程调用控件之MethodInvoker
来源:互联网 发布:孟坤软件联系 编辑:程序博客网 时间:2024/05/21 03:26
这是一部分重要的代码,用VS2005通过。
使用到两个控件,一个按钮button1,一个标签label1。
private void button1_Click(object sender, EventArgs e)
{
Thread thread=new Thread(new ThreadStart(myname));
thread.IsBackground=true;
thread.Start();
// 启动一个线程。
}
private void myname()
{
MethodInvoker mi = new MethodInvoker(hello);
//创建一个委托,hello是该委托所托管的代码,必须是声明为void的。
Invoke(mi);//同步执行委托。
//BeginInvoke(mi);异步执行委托。
}
private void hello()
{
label1.Text = "我是跨线程的!";
}
那里不正确,一定要指出,我可不想误导人,也不想被自己误导。
PS:写完后我发现http://tb.blog.csdn.net/TrackBack.aspx?PostId=715064早就有解释,比我的还详细,领教了。
故补充以下代码:
private Thread myThread;
private void Form1_Load(object sender, EventArgs e)
{
myThread = new Thread(new ThreadStart(RunsOnWorkerThread));
myThread.Start();
}
private void RunsOnWorkerThread()
{
//DoSomethingSlow();
string pList = "myThread线程调用UI控件";
label1.BeginInvoke(new System.EventHandler(UpdateUI), pList);
}
//直接用System.EventHandler,没有必要自定义委托
private void UpdateUI(object o, System.EventArgs e)
{
//UI线程设置label1属性
label1.Text = o.ToString() + "成功!";
}
- 跨线程调用控件之MethodInvoker
- 跨线程调用控件之MethodInvoker
- c#使用MethodInvoker解决跨线程访问控件
- c#使用MethodInvoker解决跨线程访问控件
- 使用MethodInvoker委托进行跨线程访问
- 跨线程调用控件
- MethodInvoker
- 系统跨线程调用控件
- winform跨线程调用控件
- 跨线程调用窗体控件
- 跨线程调用窗体控件
- 跨线程调用窗体控件
- 跨线程调用DataGridView控件
- 跨线程调用窗体控件
- C# 跨线程调用控件
- C# 跨线程调用控件
- C# 跨线程调用控件
- C# 跨线程调用控件
- 提问的艺术
- 麦咖啡 McAfee V8.5i +patch 1 + AntiSpyware Enterprise 集成优化版
- asp注入
- QQGame多开器
- 网站联盟-大才有大的智慧
- 跨线程调用控件之MethodInvoker
- C++学习------包含多态的例子
- java.util.Date 和 java.sql.Date 之间的转换
- C/C++面试题四(稍微高级)
- crt1.o :No such file
- 在J2MEDEV上的文章
- 关于div相对定位和div绝对定位的说明实例
- 联合两个索引查询,已解决: 还有个进行多条件搜索 and 与 or 的操作
- C/C++面试题五