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);
}
}
------解决方案--------------------你这样就无限递归了
而他不是
------解决方案--------------------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
你们是一个学校的?