首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

Invoke调用了步骤自身怎样理解

2013-10-11 
Invoke调用了方法自身怎样理解?在下面的代码中,下面这句代码中委托的方法调用了这个方法自身(方法AddReciv

Invoke调用了方法自身怎样理解?
在下面的代码中,下面这句代码中委托的方法调用了这个方法自身(方法AddReciveData)。没有见过种使用方法,十分困惑,期待解答,拜谢!!!
InsertRecvDataCallBaCk cb = new InsertRecvDataCallBaCk(AddReciveData);


全部代码:

private void AddReciveData(string s)
        {
            //在线程里以安全方式调用控件
            if (listBox_client.InvokeRequired)
            {
                InsertRecvDataCallBaCk cb = new InsertRecvDataCallBaCk(AddReciveData);
                Invoke(cb, s);
            }
            else
            {
                richTextBox1.AppendText(s);
            }
        }

网络 异步 BeginInvoke
[解决办法]
你这样就无限递归了
而他不是

[解决办法]
http://msdn.microsoft.com/zh-cn/library/system.windows.forms.control.invokerequired.aspx
去看下InvokeRequired是什么意思吧,他不是无限递归,如果可以直接调用,InvokeRequired是false,直接执行else,如果在跨线程调用,则InvokeRequired是ture,然后在InsertRecvDataCallBaCk方法里面再调用AddReciveData的时候,InvokeRequired就是false了,所以会执行else,不是无限递归,最多只会归一回,而你的测试代码死循环了。
[解决办法]
http://bbs.csdn.net/topics/390602838?page=1#post-395674779

你们是一个学校的?

热点排行