public void Close() { _lock.EnterWriteLock(); try { _timer.Stop(); _timer.Dispose(); foreach (var block in _callBackLst) { block.Stop(); block.Dispose(); } _callBackLst.Clear(); _removableLst.Clear(); _invokeableList.Clear(); } catch (Exception) { throw; } finally { _lock.ExitWriteLock(); _lock.Dispose(); } }