分享

线程间操作无效: 从不是创建控件“listBox”的线程访问它

 goodwangLib 2014-03-26
  UI上的控件不是线程安全的,所以跨线程的操作UI控件需要通过Invoke的方式:

private   object   m_SyncObjectForListBox   =   new   object();

                private   void   UpdateListBox(ListBox   control,   string   text)
                {
                        if   (control.InvokeRequired)
                        {
                                SetTextCallback   d   =   new   SetTextCallback(UpdateListBox);
                                this.Invoke(d,   new   object[]   {   control,   text   });
                        }
                        else
                        {
                                lock   (m_SyncObjectForListBox)    
                                {
                                        control.Items.Add(text);
                                }
                        }
                }

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多