m_flagLock.Enter(); try { StatChange change = new StatChange(statType); if (!m_changeTracker.Contains(change)) { m_changeTracker.Add(change); m_changes.Add(change); } } finally { m_flagLock.Exit(); }