代码改变世界

线程安全类 跨线程修改窗体UI

2011-01-06 17:05  通心菜  阅读(561)  评论(1编辑  收藏  举报

        private void ThreadSafeInvoke(Control control, MethodInvoker invoker)
        {
            if (control.InvokeRequired)
            {
                control.Invoke(invoker);
            }
            else
            {
                invoker();
            }
        }

 

调用:匿名方法


            //设置文本
            ThreadSafeInvoke(this,delegate()
            {
                int Cnt = int.Parse(this.listView1.Items[RuleDic[regDetail.SiteID].RowIndex].SubItems[2].Text);
                Cnt++;
                this.listView1.Items[RuleDic[regDetail.SiteID].RowIndex].SubItems[2].Text = Cnt.ToString();

            });