void OnTimer(object state) { lock(this) { if(!_disposed) { _timer.Change(Timeout.Infinite, Timeout.Infinite); if(_opState == OpState.Working) { _opState = OpState.Timedout; Dispose(); } } } }