CFRunLoopStop() private méthode

private CFRunLoopStop ( IntPtr runLoop ) : void
runLoop System.IntPtr
Résultat void
        protected override void Dispose(bool disposing)
        {
            base.Dispose(disposing);
            if (!HandleClose())
            {
                return;
            }

            _shutdown = true;
            try {
                lock (_outputQueue) {
                    Monitor.PulseAll(_outputQueue);
                }
            } catch {
            }

            NativeMethods.CFRunLoopStop(_readRunLoop);
            try {
                _readThread.Join();
            } catch {
            }
            try {
                _writeThread.Join();
            } catch {
            }

            HandleRelease();
        }
        protected override void Dispose(bool disposing)
        {
            if (!HandleClose())
            {
                return;
            }

            _shutdown = true;
            try { lock (_inputQueue) { Monitor.PulseAll(_inputQueue); } } catch { }
            try { lock (_outputQueue) { Monitor.PulseAll(_outputQueue); } } catch { }

            while (true)
            {
                var runLoop = _readRunLoop;
                if (runLoop != null)
                {
                    NativeMethods.CFRunLoopStop(runLoop);
                }

                try
                {
                    if (_readThread.Join(25))
                    {
                        break;
                    }
                }
                catch
                {
                    break;
                }
            }

            try { _writeThread.Join(); } catch { }
            HandleRelease();

            base.Dispose(disposing);
        }