public void AquireTimeOut() { Console.WriteLine("Acquire Lock 1"); var lock1 = DirectoryLock.Acquire(_directory); Console.WriteLine("Acquire Lock 2"); var lock2 = DirectoryLock.Acquire(_directory, TimeSpan.FromSeconds(1)); }
public void Aquire() { var thread1 = new Thread(s => { Console.WriteLine("[Thread: {0}] Lock 1 Entry", Thread.CurrentThread.ManagedThreadId); using (var lock1 = DirectoryLock.Acquire(_directory, TimeSpan.FromSeconds(5))) { Console.WriteLine("[Thread: {0}] Lock 1", Thread.CurrentThread.ManagedThreadId); Thread.Sleep(TimeSpan.FromSeconds(10)); } }); thread1.Start(); var thread2 = new Thread(s => { Console.WriteLine("[Thread: {0}] Lock 2 Entry", Thread.CurrentThread.ManagedThreadId); using (var lock2 = DirectoryLock.Acquire(_directory, TimeSpan.FromSeconds(5))) { Console.WriteLine("[Thread: {0}] Lock 2", Thread.CurrentThread.ManagedThreadId); } }); thread2.Start(); Thread.Sleep(TimeSpan.FromSeconds(20)); }