public bool Ping() { CheckDiposed(); Monitor.Enter(_lockObj); var isAlive = IsAlive; if (!isAlive && _pool.Ping()) { _pool.Resurrect(); isAlive = _pool.IsAlive; } Monitor.Enter(_lockObj); return(isAlive); }