关注联楷|返回首页 | 网站案例 | 帮助中心

合作共赢、快速高效、优质的网站建设提供商

上海网站建设 

服务热线:021-61394118

上海联楷科技

c# 线程间操作无效: 从不是创建控件的线程访问它

作者:佚名   时间:2012-05-14   分享到:

c#不允许对跨线程的控件的访问,上海网站建设如需操作跨线程的操作需要通过委托(delegate),即是函数指针来操作跨线程。说明dgList控件不是该线程的控件,需要使用委托操作。比如:
delegate void SetListBoxCallback(string str);   //定义委托
public void SetListBox(string str)
        {
            if (listBoxInfo.InvokeRequired)  //控件是否跨线程?如果是,则执行括号里代码
            {
                SetListBoxCallback setListCallback = new SetListBoxCallback(SetListBox);   //实例化委托对象
                listBoxInfo.Invoke(setListCallback, str);   //重新调用SetListBox函数
            }
            else  //否则,即是本线程的控件,控件直接操作
            {
                listBoxInfo.Items.Add(str);         
           }
        }



如没特殊注明,文章均为上海联楷网络原创,转载请注明来自:http://www.linksj.com/contact/20151229/n7544.html

上海联楷网络新闻