Exemplo n.º 1
0
        public (bool Extracted, string Contents) ExtractContentsAndClearIfCountGreaterThanThen(int minExtractSize)
        {
            bool   extracted;
            string contents = string.Empty;

            using var lck = StringVault.UpgradableRoLock();
            //using var lck = StringVault.UpgradableRoLockBlockUntilAcquired();
            extracted = (lck.Length >= minExtractSize);
            if (extracted)
            {
                using var writeLck = lck.LockBlockUntilAcquired();
                //using var writeLck = lck.Lock();
                contents = writeLck.ToString();
                writeLck.Clear();
            }

            return(extracted, contents);
        }
Exemplo n.º 2
0
 public void AppendToVault(string appendMe)
 {
     using var lck = StringVault.Lock();
     lck.Append(appendMe ?? string.Empty);
 }
Exemplo n.º 3
0
 public int GetCount()
 {
     using var lck = StringVault.RoLock();
     return(lck.Length);
 }