将lambda表达式作为回调函数传递给同一个lambda表达式

时间:2013-10-04 08:58:10

标签: c# lambda delegates

这是我的代码

        _serverSocket.BeginAccept(AcceptCallback, null);

private static void AcceptCallback(IAsyncResult AR)
{
    ...
   _serverSocket.BeginAccept(AcceptCallback, null);
}

我试图将其缩短为lambda表达式 是

_serverSocket.BeginAccept(AR => {

}, null);

我想是否有办法将lambda表达式作为委托方法传递给事件调用,我正在讨论如何从同一个表达式中调用相同的lambda表达式的一般目的(有点像递归),它是否可能

并且在这种特殊情况下,有没有办法解决这个问题,不要使用一个会冻结应用程序的循环,仍然使用lambda作为接受回调,仍然从lambda表达式中调用begin accept

1 个答案:

答案 0 :(得分:0)

你可以试试这个:

AsyncCallback asyncCallback = null;
asyncCallback = ar =>
{
    _serverSocket.BeginAccept(asyncCallback, null);
};
_serverSocket.BeginAccept(asyncCallback, null);