首页 新闻 赞助 找找看

C#跨线程赋值

0
[已解决问题] 解决于 2013-08-28 21:52

C#里,请问,为了给主线程减小压力,开辟了一个新的线程刷新主线程的实时基础信息,怎样让开辟出的线程给主线程的Label控件赋值?谢谢

秋刀鱼No1的主页 秋刀鱼No1 | 初学一级 | 园豆:31
提问于:2013-08-27 22:44
< >
分享
最佳答案
0
        private delegate void SetTextToLabelDelegate(string text);
        private void SetTextToLabel(string text)
        {
            if (lblText.InvokeRequired)
            {
                SetTextToLabelDelegated = new SetTextToLabelDelegate(SetTextToLabel);
                lblText.Invoke(d, text);
            }
            else
            {
                lblText.Text = text;
            }
        }

        
        //然后调用SetTextToLabel方法给label赋值就行了
奖励园豆:5
psforever | 菜鸟二级 |园豆:461 | 2013-08-28 17:52

请问lblText.Invoke(d,text)中的d是什么?

秋刀鱼No1 | 园豆:31 (初学一级) | 2013-08-28 21:59
其他回答(1)
0

一种是Form.Check....=false,把线程检测的关了,线程可以直接给UI赋值。

二是线程里,利用Invoke方法调用主线程去对UI赋值。

路过秋天 | 园豆:4787 (老鸟四级) | 2013-08-27 23:29

谢谢,已解决。我用的Control.Invoke(new myDelegate(myFun));解决的

支持(0) 反对(0) 秋刀鱼No1 | 园豆:31 (初学一级) | 2013-08-28 22:00
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册