在一段时间后重新尝试服务器连接
问题描述:
我有一个客户端,它是一个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();
}
}
您不需要每次重新创建计时器... – 2011-02-14 00:10:28