C#跨线程访问控件运行时错误,使用MethodInvoker即可解决:
原代码:
- private void btnOK_Click(object sender, EventArgs e)
- {
- tslInfo.Text = "请稍候...";
- Thread td = new Thread(new ThreadStart(run));
- td.Start();
- }
- /// <summary>
- /// 线程方法
- /// </summary>
- private void run()
- {
- this.tslInfo.Text = "就绪";
- }
- private void btnOK_Click(object sender, EventArgs e)
- {
- tslInfo.Text = "请稍候...";
- Thread td = new Thread(new ThreadStart(threadRun));
- td.Start();
- }
- /// <summary>
- /// 原线程方法
- /// </summary>
- private void run()
- {
- this.tslInfo.Text = "就绪";
- }
- /// <summary>
- /// 线程方法
- /// </summary>
- private void threadRun()
- {
- MethodInvoker In = new MethodInvoker(run);
- this.BeginInvoke(In);
- }
本文介绍了一种解决C#中跨线程访问UI控件导致运行时错误的方法。通过使用MethodInvoker进行线程安全的UI更新,避免了直接从非UI线程更新界面的问题。

2134

被折叠的 条评论
为什么被折叠?



