private CFRunLoopStop ( |
||
runLoop | ||
return | 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); }