子线程更新界面文本
Posted chixiner
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了子线程更新界面文本相关的知识,希望对你有一定的参考价值。
当在线程中处理完一个事情,需要将结果反馈给界面时,如果直接修改界面文本就会报“在不是创建它的线程中访问控件”的错。在此记录两个处理办法:
1.线程同步
System.Threading.SynchronizationContext _SyncContext = new System.Threading.SynchronizationContext.Current;//主线程中定义
private void UpdateLable(object o) => { myLabel.Text=(string)o;}//主线程中定义
_SyncContext.Post(UpdateLable, "成功");//子线程中调用
2.子线程中Invoke
System.Windows.Forms.MethodInvoker mi = new System.Windows.Forms.MethodInvoker(() =>{myLabel.Text=“成功”; });
this.BeginInvoke(mi);
以上是关于子线程更新界面文本的主要内容,如果未能解决你的问题,请参考以下文章