示例#1
0
        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");
                }
            }
        }
示例#2
0
        /// <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();
        }
示例#3
0
        /// <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();
        }