Exemple #1
0
        static int Main(string[] args)
        {
            var         type   = args[0];
            var         name   = args[1];
            IDisposable handle = null;

            switch (type)
            {
            case "sql":
                handle = new SqlDistributedLock(name, ConnectionString).Acquire();
                break;

            case "sqlreaderwriterlock":
                handle = new SqlDistributedReaderWriterLock(name, ConnectionString).AcquireWriteLock();
                break;

            case "system":
                handle = new SystemDistributedLock(name).Acquire();
                break;

            default:
                return(123);
            }

            if (Console.ReadLine() != "abandon")
            {
                handle.Dispose();
            }

            return(0);
        }
Exemple #2
0
        public static int Main(string[] args)
        {
            var         type = args[0];
            var         name = args[1];
            IDisposable?handle;

            switch (type)
            {
            case "SqlDistributedLock":
                handle = new SqlDistributedLock(name, ConnectionString).Acquire();
                break;

            case "SqlReaderWriterLockDistributedLock":
                handle = new SqlDistributedReaderWriterLock(name, ConnectionString).AcquireWriteLock();
                break;

            case "SqlSemaphoreDistributedLock":
                handle = new SqlDistributedSemaphore(name, maxCount: 1, connectionString: ConnectionString).Acquire();
                break;

            case "SqlSemaphoreDistributedLock5":
                handle = new SqlDistributedSemaphore(name, maxCount: 5, connectionString: ConnectionString).Acquire();
                break;

            case "SystemDistributedLock":
                handle = new SystemDistributedLock(name).Acquire();
                break;

            default:
                return(123);
            }

            Console.WriteLine("Acquired");
            Console.Out.Flush();

            if (Console.ReadLine() != "abandon")
            {
                handle.Dispose();
            }

            return(0);
        }