public bool TryDecache(out T value) { using (mutex.Aquire()) { if (Count < 1) { value = default(T); return(false); } else { value = UnsafeDecache(); return(true); } } }