Exemplo n.º 1
0
            /// <summary>
            /// Disposes the object and frees resources for the Garbage Collector.
            /// </summary>
            /// <param name="disposing">
            /// If true, the object gets disposed.
            /// </param>
            private void Dispose(bool disposing)
            {
                if (this.isDisposed)
                {
                    return;
                }

                if (disposing)
                {
                    RefCounted <SemaphoreSlim> item;
                    lock (SemaphoreSlims)
                    {
                        item = SemaphoreSlims[this.key];
                        --item.RefCount;
                        if (item.RefCount == 0)
                        {
                            SemaphoreSlims.Remove(this.key);
                        }
                    }

                    item.Value.Release();
                }

                // Call the appropriate methods to clean up
                // unmanaged resources here.
                // Note disposing is done.
                this.isDisposed = true;
            }
Exemplo n.º 2
0
 public void Dispose()
 {
     RefCounted<SemaphoreSlim> item;
     lock (SemaphoreSlims)
     {
         item = SemaphoreSlims[Key];
         --item.RefCount;
         if (item.RefCount is 0)
             SemaphoreSlims.Remove(Key);
     }
     item.Value.Release();
 }
Exemplo n.º 3
0
        public void Dispose()
        {
            RefCounted <SemaphoreSlim> item;

            lock (SemaphoreSlims)
            {
                item = SemaphoreSlims[key];
                --item.RefCount;
                if (item.RefCount == 0)
                {
                    SemaphoreSlims.Remove(key);
                }
            }
            item.Value.Release();
        }
Exemplo n.º 4
0
            public void Dispose()
            {
                RefCounted <SemaphoreSlim> semaphoreSlim;

                lock (SemaphoreSlims)
                {
                    semaphoreSlim = SemaphoreSlims[Key];
                    --semaphoreSlim.RefCount;
                    if (semaphoreSlim.RefCount == 0)
                    {
                        SemaphoreSlims.Remove(Key);
                    }
                }

                semaphoreSlim.Value.Release();
            }