当前位置: 首页>>代码示例>>C#>>正文


C# Msg.InitDelimiter方法代码示例

本文整理汇总了C#中NetMQ.zmq.Msg.InitDelimiter方法的典型用法代码示例。如果您正苦于以下问题:C# Msg.InitDelimiter方法的具体用法?C# Msg.InitDelimiter怎么用?C# Msg.InitDelimiter使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在NetMQ.zmq.Msg的用法示例。


在下文中一共展示了Msg.InitDelimiter方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Terminate

        //  Ask pipe to terminate. The termination will happen asynchronously
        //  and user will be notified about actual deallocation by 'terminated'
        //  event. If delay is true, the pending messages will be processed
        //  before actual shutdown.
        public void Terminate(bool delay)
        {
            //  Overload the value specified at pipe creation.
            m_delay = delay;

            //  If terminate was already called, we can ignore the duplicit invocation.
            if (m_state == State.Terminated || m_state == State.DoubleTerminated)
                return;

                //  If the pipe is in the phase of async termination, it's going to
                //  closed anyway. No need to do anything special here.
            else if (m_state == State.Terminating)
                return;

                //  The simple sync termination case. Ask the peer to terminate and wait
                //  for the ack.
            else if (m_state == State.Active) {
                SendPipeTerm (m_peer);
                m_state = State.Terminated;
            }

                //  There are still pending messages available, but the user calls
                //  'terminate'. We can act as if all the pending messages were read.
            else if (m_state == State.Pending && !m_delay) {
                m_outpipe = null;
                SendPipeTermAck (m_peer);
                m_state = State.Terminating;
            }

                //  If there are pending messages still availabe, do nothing.
            else if (m_state == State.Pending) {
            }

                //  We've already got delimiter, but not term command yet. We can ignore
                //  the delimiter and ack synchronously terminate as if we were in
                //  active state.
            else if (m_state == State.Delimited) {
                SendPipeTerm (m_peer);
                m_state = State.Terminated;
            }

                //  There are no other states.
            else
                Debug.Assert(false);

            //  Stop outbound flow of messages.
            m_outActive = false;

            if (m_outpipe != null) {

                //  Drop any unfinished outbound messages.
                Rollback ();

                //  Write the delimiter into the pipe. Note that watermarks are not
                //  checked; thus the delimiter can be written even when the pipe is full.

                Msg msg = new Msg();
                msg.InitDelimiter ();
                m_outpipe.Write (msg, false);
                Flush ();

            }
        }
开发者ID:ezhuo,项目名称:netmq,代码行数:67,代码来源:Pipe.cs


注:本文中的NetMQ.zmq.Msg.InitDelimiter方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。