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

问题描述:

我有一个客户端,它是一个Windows进程,从c#中的服务器获取更新。服务器可能因为维护而停机一段时间,如果需要更新,客户端无法在此时连接到服务器。在一段时间后重新尝试服务器连接

我想要设计,以便客户端在30分钟后尝试连接,如果连接尝试失败。我明白Thread.Sleep会是个坏主意,所以我想就如何做到这一点提出一些建议。

在此先感谢。

使用计时器。如果功能无法连接,请设置一个计时器以再次调用它...

例如,

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(); 
    } 

} 
+0

您不需要每次重新创建计时器... – 2011-02-14 00:10:28