所以在这里我有一个问题,我的C#代码.. 它重复一个线程几分钟StackOverflowException在System.dll中
这里后接受新的连接 但它变得StackOverflowException在System.dll中是我的代码
void DoReceive(SocketAsyncEventArgs args)
{
var client = (TCPClient)args.UserToken;
System.Threading.Thread.Sleep(10);
if (!client.socket.ReceiveAsync(args))
{
//System.Threading.Thread.Sleep(10);
DoReceive(args);
}
}
您正在递归调用DoReceieve,这会导致SOE。从异常情况下的堆栈跟踪中可以明显看出,如果你调试了。 =) – 2013-03-13 13:18:04
如何防止这件事? :S – 2013-03-13 13:20:20
如何使用while循环和重试限制?这比递归地重试所有永恒更为常见。 =) – 2013-03-13 13:22:00