关于invokeRequired与invoke

invokerequired的出现的目的是安全的使用线程
 
每当一个创建本线程外的函数或者方法要调用该进程,则invokerequired的值为true
本进程中的任意方法调用,则invokerequired的值为false
 
可以这样理解,有人想找你借钱,他可以直接在你的钱包中拿,这样太不安全,因此必须让别人先要告诉你,你再从自己的钱包把钱拿出来借给别人,这样就安全了
 
常用的书写方式
         private void WriteInfo(string text)
        {
            if (this .richTextBox1.InvokeRequired)
            {
                OutPutText delegate1 = new OutPutText(WriteInfoExcut);
                Invoke(delegate1, new object [] { text });
            }
            else
            {
                // 递归(方法自己调用自己,直到 InvokeRequired等于false 
                WriteInfo(text);
            }
        }
 
在使用wcf程序时候出现
出错原因:在服务器和客户端绑定基本通信类型的时候不一致
解决方法:保持一致就可以了,常用BasicHttpBinding数据类型。
posted @ 2012-12-26 18:29  oeaker  阅读(1611)  评论(0编辑  收藏  举报