Blacker.MangaScraper.Common.Utils.FifoSemaphore.Waiter.TryWait C# (CSharp) Метод

TryWait() публичный Метод

public TryWait ( int millisecondsTimeout ) : bool
millisecondsTimeout int
Результат bool
            public bool TryWait(int millisecondsTimeout)
            {
                lock (_syncRoot)
                {
                    if (_released) //We've been released before we even started waiting!
                        return true;

                    try
                    {
                        bool success = Monitor.Wait(_syncRoot, millisecondsTimeout);

                        if (!success)
                            _released = true; //Note that we've been released early

                        return success;
                    }
                    catch (ThreadInterruptedException)
                    {
                        if (_released == false)
                        {
                            _released = true; //Note that we've been released early
                            throw;
                        }

                        //We've already been released, so we might as well succeed at
                        //the operation and get interrupted later
                        Thread.CurrentThread.Interrupt();
                        return true;
                    }
                }
            }
FifoSemaphore.Waiter