コード例 #1
0
ファイル: ZmqCommandPump.cs プロジェクト: pingbc/EntityModel
        /// <summary>
        ///     执行处理泵
        /// </summary>
        /// <returns></returns>
        protected void RunPump()
        {
            //登记线程开始
            RpcEnvironment.set_command_thread_start();
            //monitor?.Stop();
            int state = 0;

            Console.WriteLine($"命令请求泵({ZmqAddress})正在启动");
            using (var socket = CreateSocket())
            {
                //monitor = new NetMQMonitor(socket, $"inproc://pump_{Guid.NewGuid()}.rep", SocketEvents.All);
                OptionSocktet(socket);
                socket.Connect(ZmqAddress);
                OnConnected(socket);

                Console.WriteLine($"命令请求泵({ZmqAddress})已启动");

                while (RpcEnvironment.NetState == ZmqNetStatus.Runing)
                {
                    state = DoWork(socket);
                    if (state == -1)
                    {
                        break;
                    }
                }
                socket.Disconnect(ZmqAddress);
            }
            //登记线程关闭
            RpcEnvironment.set_command_thread_end();

            OnTaskEnd(state);
        }
コード例 #2
0
        /// <summary>
        ///     执行处理泵
        /// </summary>
        /// <returns></returns>
        protected void RunPump()
        {
            //登记线程开始
            RpcEnvironment.set_command_thread_start();
            //monitor?.Stop();
            int state = 0;

            Console.WriteLine($"命令请求泵({ZmqAddress})正在启动{this.GetType().Name}");
            using (var socket = CreateSocket())
            {
                //monitor = new NetMQMonitor(socket, $"inproc://pump_{Guid.NewGuid()}.rep", SocketEvents.All);
                OptionSocktet(socket);
                socket.Connect(ZmqAddress);
                OnConnected(socket);

                Console.WriteLine($"命令请求泵({ZmqAddress})已启动{this.GetType().Name}");

                while (m_state == 4 && RpcEnvironment.NetState == ZmqNetStatus.Runing)
                {
                    state = DoWork(socket);
                    if (state == -1)
                    {
                        Console.WriteLine($"命令请求泵({ZmqAddress})正在错误状态{this.GetType().Name}");
                        break;
                    }
                }
                Console.WriteLine($"命令请求泵({ZmqAddress})正在关闭{this.GetType().Name}");
                try
                {
                    OnDeConnected(socket);
                }
                catch (Exception e)
                {
                }
                try
                {
                    socket.Disconnect(ZmqAddress);
                }
                catch (Exception e)
                {
                }
            }
            Console.WriteLine($"命令请求泵({ZmqAddress})已关闭{this.GetType().Name}");
            //登记线程关闭
            RpcEnvironment.set_command_thread_end();
            thread = null;
            OnTaskEnd(state);
        }