public void BindAndConnect() { using (PairSocket bind = new PairSocket()) { bind.Bind("inproc://test"); Assert.That(!bind.HasOut); using (PairSocket connect = new PairSocket()) { connect.Connect("inproc://test"); Assert.That(connect.HasOut); Assert.That(bind.HasOut); Assert.That(!bind.HasIn); Assert.That(connect.TrySendFrame("Hello")); Assert.That(bind.HasIn); string message; Assert.That(bind.TryReceiveFrameString(out message)); Assert.That(message == "Hello"); } } }
/// <summary> /// Release any contained resources. /// </summary> /// <param name="disposing">true if managed resources are to be released</param> protected virtual void Dispose(bool disposing) { if (!disposing) { return; } // send destroy message to pipe if (m_self.TrySendFrame(EndShimMessage)) { m_self.ReceiveSignal(); } m_shimThread.Join(); m_self.Dispose(); m_sendEvent.Dispose(); m_receiveEvent.Dispose(); }
/// <summary> /// Release any contained resources. /// </summary> /// <param name="disposing">true if managed resources are to be released</param> protected virtual void Dispose(bool disposing) { if (Interlocked.CompareExchange(ref m_isDisposed, 1, 0) != 0) { return; } if (!disposing) { return; } // send destroy message to pipe if (m_self.TrySendFrame(EndShimMessage)) { m_self.ReceiveSignal(); } m_shimThread.Join(); m_self.Dispose(); m_sendEvent.Dispose(); m_receiveEvent.Dispose(); }