线程UI同步

Posted 瘦馬

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线程UI同步相关的知识,希望对你有一定的参考价值。

 

譬如设置控件的文本,

 private void SetControlText2(Control c, string text)
        {
            if (c.InvokeRequired)
            {
                this.Invoke(new MethodInvoker(delegate() { SetControlText2(c, text); }), c, text);
            }
            else
            {
                c.Text = text; ;
               
            }
        }

 上面这是简易的写法,要写成下面这种也可以;

 private delegate void SetControlTextCallBack(Control c, string text);
        private void SetControlText(Control c,string text)
        {
            if (c.InvokeRequired)
            {
                this.Invoke(new SetControlTextCallBack(SetControlText), c,text);
            }
            else
            {
                c.Text = text; ;
                // btnTest.Text =bool( o);
            }
        }

 

以上是关于线程UI同步的主要内容,如果未能解决你的问题,请参考以下文章

为啥不等待 Task.Run() 同步回 UI 线程/原始上下文?

线程同步-使用ReaderWriterLockSlim类

jQuery同步Ajax带来的UI线程阻塞问题及解决办法

同步测试线程、UI线程和CursorLoader线程

qt 线程与ui线程同步

活动到片段方法调用带有进度条的线程