private void Heartbeat()
{
if (!Monitor.TryEnter(m_heartbeatLock))
{
Watchdog.RemoveThread();
return;
}
try
{
Update();
m_lastUpdate = Util.EnvironmentTickCount();
m_firstHeartbeat = false;
}
catch (ThreadAbortException)
{
}
finally
{
Monitor.Pulse(m_heartbeatLock);
Monitor.Exit(m_heartbeatLock);
}
Watchdog.RemoveThread();
}