在我们的代码中,我们有一个计时器,用于检查服务器是否已连接。如果未连接,将尝试重新连接服务器。
代码如下
private void timer_Elapsed(object source, ElapsedEventArgs e)
{
timer.Stop();
if (timer.Interval != serverTimeOut)
{
timer.Interval = serverTimeOut;
}
timer.Start();
//below the code to check whether server connected or not
}
我们正在获得像
这样的例外Class: System.Threading.TimerBase
Function: DeleteTimerNative
Exception: System.ApplicationException: Error in the application.
at System.Threading.TimerBase.DeleteTimerNative(SafeHandle notifyObject)
at System.Threading.TimerBase.Dispose()
at System.Threading.Timer.Dispose()
at System.Timers.Timer.set_Enabled(Boolean value)
at System.Timers.Timer.Stop()
at ServerConnection.timer_Elapsed(Object source, ElapsedEventArgs e)
在已用完的事件中,我们停止计时器并更改间隔,然后再次启动计时器。这个步骤会导致任何异常吗?
答案 0 :(得分:0)
为什么要停止并启动计时器并设置间隔。您应该检查服务器是否已连接。
<强>更新强>
您正在停止计时器,该计时器会删除事件内的本机计时器。不是一个好主意。您无法在不停止和启动的情况下设置间隔。
private void timer_Elapsed(object source, ElapsedEventArgs e)
{
if (timer.Interval != serverTimeOut)
timer.Interval = serverTimeOut;
//below the code to check whether server connected or not
}