一段时间后重新尝试服务器连接

时间:2011-02-13 23:53:22

标签: c# connection client-server

我有一个客户端,它是一个Windows进程,用于从c#中获取服务器的更新。服务器可能已关闭维护一段时间,如果需要更新,客户端此时将无法连接到服务器。

我想设计一下,如果连接尝试失败,客户端会在30分钟后重新尝试连接。我理解Thread.Sleep是个坏主意,所以我想就如何做一些建议。

提前致谢。

1 个答案:

答案 0 :(得分:0)

使用计时器。如果函数无法连接,则设置一个计时器再次调用它......

e.g。

    class MyClass
    {




 System.Timers.Timer m_ConnectTimer = null;

        ..
        ..

    void ConnecToServer()
    {
        if (m_ConnectTimer != null)
        {
            m_ConnectTimer.Enabled = false;
            m_ConnectTimer.Dispose();
            m_ConnectTimer = null;
        }

        //Try to connect to the server

        if (bConnectedToTheServer)
        {
            //Do the servery stuff
        }
        else //set the timer again
        {
            m_ConnectTimer = new Timer(30 * 60 * 1000);
            m_ConnectTimer.Elapsed += new ElapsedEventHandler(TimerHandler)
            m_ConnectTimer.Enabled = true;
        }

    }


    void TimerHandler(object sender, ElapsedEventArgs e)
    {
        ConnectToServer();
    }

}