`

C# 多线程操作界面主线程示例

    博客分类:
  • C#
阅读更多
        #region ====== invoke ======
        //定义一个委托用于跨线程访问方法
        delegate void changeLbl(string str, bool bIsAdd);
        //访问主线程
        private void ChangeLbl(string str,bool bIsAdd)
        {
            ////是否必须调用 Invoke 方法
            //if (this.InvokeRequired)
            //{
            //invoke调用主线程
            this.Invoke(new changeLbl(ChangeText), str, bIsAdd);
            //}
            //else
            //{
            //设置主线程[界面]的值
            //    label1.Text = str;
            //}
        }
        //设置主线程[界面]的值
        private void ChangeText(string str, bool bIsAdd)
        {
            if (bIsAdd)
            {
                lsbUserList.Items.Add(str);
            }
            else
            {
                lsbUserList.Items.Remove(str);
            }
           // string strTemp = str + "is connected!";
            //lsbUserList.Items.Add(str);
            //this.lsbUserList.Text = str;
            //this.lsbUserList.Refresh();
        }
        #endregion ====== invoke ======
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics