小编Dan*_*rgl的帖子

用递归替换while循环

快速简单的问题:

这是:

private static void SetupConnection()
{
    try
    {
        TcpClient client = new TcpClient(myServer, myPort);
        //Do whatever...
    }
    catch (SocketException)
    {
        //Server is closed. Retry in 10 minutes.
        Thread.Sleep(600000);
        SetupConnection();
    }
Run Code Online (Sandbox Code Playgroud)

一个可行的替代方案:

private static void SetupConnection()
{
    while (true)
    {
        try
        {
            TcpClient client = new TcpClient(myServer, myPort);
            //Do whatever...
            break;
        }
        catch (SocketException)
        {
            //Server is closed. Retry in 10 minutes.
            Thread.Sleep(600000);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

虽然第二个看起来"更干净",但如果第一个也是可以接受的话,我仍然很好奇 - 如果不是,那么为什么不呢?

c# sockets recursion tcpclient while-loop

0
推荐指数
1
解决办法
95
查看次数

标签 统计

c# ×1

recursion ×1

sockets ×1

tcpclient ×1

while-loop ×1