0
我有一個客戶端,它是一個Windows進程,從c#中的服務器獲取更新。服務器可能因爲維護而停機一段時間,如果需要更新,客戶端無法在此時連接到服務器。在一段時間後重新嘗試服務器連接
我想要設計,以便客戶端在30分鐘後嘗試連接,如果連接嘗試失敗。我明白Thread.Sleep會是個壞主意,所以我想就如何做到這一點提出一些建議。
在此先感謝。
我有一個客戶端,它是一個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