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


C# MessageQueue.BeginPeek方法代码示例

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


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

示例1: Start

        public void Start()
        {

            if (!enabled)
            {
                return;
            }

            if (Settings.AuditQueue == Address.Undefined)
            {
                Logger.Info("No Audit queue has been configured. No audit import will be performed. To enable imports add the ServiceBus/AuditQueue appsetting and restart ServiceControl");
                return;
            }

            performanceCounters.Initialize();

            queuePeeker = new MessageQueue(MsmqUtilities.GetFullPath(Settings.AuditQueue), QueueAccessMode.Peek);
            queuePeeker.MessageReadPropertyFilter.ClearAll();
            queuePeeker.PeekCompleted += QueueOnPeekCompleted;

            enrichers = builder.BuildAll<IEnrichImportedMessages>().ToList();

            Logger.InfoFormat("MSMQ Audit import is now started, feeding audit messages from: {0}", Settings.AuditQueue);

            countDownEvent.Idle += OnIdle;

            Logger.Debug("Ready to BeginPeek");
            queuePeeker.BeginPeek();
        }
开发者ID:dmitriylyner,项目名称:ServiceControl,代码行数:29,代码来源:MsmqAuditQueueImporter.cs

示例2: MsmqTransport

 public MsmqTransport()
 {
     _messageQueue = new MessageQueue(".\\private$\\TestQueue");
     _messageQueue.PeekCompleted += OnMessagePeeked;
     _messageQueue.BeginPeek();
     
 }
开发者ID:larsw,项目名称:Loom.Esb,代码行数:7,代码来源:MsmqTransport.cs

示例3: Main

 static void Main(string[] args)
 {
     _orderQueue = new MessageQueue(ORDER_QUEUE_PATH, QueueAccessMode.Receive);
     _orderQueue.PeekCompleted += _orderQueue_PeekCompleted;
     _orderQueue.BeginPeek();
     Console.ReadLine();
 }
开发者ID:sconno05,项目名称:order-service,代码行数:7,代码来源:Program.cs

示例4: OnStart

 protected override void OnStart(string[] args)
 {
     flights.getFlights();
     hotels.GetHotelReservations();
     MessageQueue queue = new MessageQueue(Reservation.QUEUE_PATH);
     queue.PeekCompleted += new PeekCompletedEventHandler(readAndPeek);
     queue.BeginPeek();
 }
开发者ID:xela85,项目名称:dotnetBooking,代码行数:8,代码来源:puller.cs

示例5: StartRead

        public void StartRead()
        {
            if (!MessageQueue.Exists(_queueName))
                throw new Exception();

            _queue = new MessageQueue(_queueName) {Formatter = new XmlMessageFormatter(new Type[] {typeof (string)})};
            _queue.PeekCompleted += new PeekCompletedEventHandler(QueuePeekCompleted);
            _queue.BeginPeek();
        }
开发者ID:DyegoCosta,项目名称:MultipleMessageQueueListener,代码行数:9,代码来源:Sales.cs

示例6: OnStart

 public void OnStart(string[] args)
 {
     _stopRequested = false;
     _stopReady = true;
     _txQueue = new MessageQueue(QueueAddress, true);
     _txQueue.Formatter = new XmlMessageFormatter(new[] { typeof(BasicMessage) });
     _txQueue.PeekCompleted += TxQueueOnPeekCompleted;
     Thread.Sleep(2000); // so I can see WPF bindings
     _txQueue.BeginPeek();
 }
开发者ID:kirk-clawson,项目名称:MSMQExamples,代码行数:10,代码来源:TransactionalServer.cs

示例7: Initialize

        public void Initialize(EndpointAddress inputAddress, EndpointAddress errorAddress)
        {
            inputQueue = MsmqUtilities.GetQueue(inputAddress) ?? MsmqUtilities.CreateQueue(inputAddress);

            if (!MsmqUtilities.QueueExists(errorAddress))
            {
                MsmqUtilities.CreateQueue(errorAddress);
            }

            inputQueue.MessageReadPropertyFilter = new MessagePropertyFilter
            {
                Body = true,
                Recoverable = true,
                Id = true,
                CorrelationId = true,
                Extension = true,
                AppSpecific = true,
            };

            inputQueue.ReceiveCompleted += OnReceiveCompleted;
            inputQueue.PeekCompleted += OnPeekCompleted;
            inputQueue.BeginPeek();
        }
开发者ID:Zapote,项目名称:EzBus,代码行数:23,代码来源:MsmqReceivingChannel.cs

示例8: PeekAllMessage

        public MessageInfo PeekAllMessage(StructuredQueue oQueueTemp, int myID, int MaxQuery)
        {
            //Message messages = null;
            MessageInfo MyInfo = new MessageInfo();
            try
            {

                MessageQueue MessageInQueue = new System.Messaging.MessageQueue(oQueueTemp.sPath, QueueAccessMode.SendAndReceive);
                System.Messaging.Cursor cursor = MessageInQueue.CreateCursor();
                Message m = PeekWithoutTimeout(MessageInQueue, cursor, PeekAction.Current);
                Application.DoEvents();
                ArrayList MyMessage = new ArrayList();
                MessageInQueue.MessageReadPropertyFilter.Id = true;
                MessageInQueue.MessageReadPropertyFilter.Priority = true;
                MessageInQueue.MessageReadPropertyFilter.SentTime = true;
                MessageInQueue.MessageReadPropertyFilter.MessageType = true;
                MessageInQueue.MessageReadPropertyFilter.Label = true;
                MessageInQueue.MessageReadPropertyFilter.Body = true;
                MessageInQueue.BeginPeek(new TimeSpan(0, 0, 10, 0));
                //MessageEnumerator msgQenum = MessageInQueue.GetMessageEnumerator2();
                int index = 0;
                //  MyInfo.ID = MessageInQueue.GetAllMessages().Length;
                if (m != null)
                {
                    while ((m = PeekWithoutTimeout(MessageInQueue, cursor, PeekAction.Current)) != null)
                    //while (msgQenum.MoveNext())
                    {
                        Application.DoEvents();

                        if (!(index > MaxQuery))
                        {
                            //                       messages = msgQenum.Current;
                            QueueInfos QueueInfo = new QueueInfos();
                            //QueueInfo.ID = messages.Id;
                            //QueueInfo.SentTime = messages.SentTime.ToString();
                            //QueueInfo.Body = ReadMessageStream(messages.BodyStream);
                            //QueueInfo.Label = messages.Label;
                            //QueueInfo.Priority = messages.Priority.ToString();
                            //QueueInfo.MessageID = index.ToString();
                            //QueueInfo.Transact = oQueueTemp.bTransactional;
                            //QueueInfo.Queue = oQueueTemp.sQueueName;
                            QueueInfo.ID = m.Id;
                            QueueInfo.SentTime = m.SentTime.ToString();
                            QueueInfo.Body = ReadMessageStream(m.BodyStream);
                            QueueInfo.Label = m.Label;
                            QueueInfo.Priority = m.Priority.ToString();
                            QueueInfo.MessageID = index.ToString();
                            QueueInfo.Transact = oQueueTemp.bTransactional;

                            QueueInfo.Queue = oQueueTemp.sQueueName;
                            MyMessage.Add(QueueInfo);
                        }
                        index++;
                        PeekWithoutTimeout(MessageInQueue, cursor, PeekAction.Next);
                    }
                }
                MyInfo.ID = index;
                MyInfo.Message = MyMessage;

            }
            catch  {}

                return MyInfo;
        }
开发者ID:ramonsmits,项目名称:qexplorer,代码行数:64,代码来源:MSMQXplorer.cs

示例9: RunRemoteTransactionalFramework

 /// <summary>
 /// Starts to listen to a remote Transactional Queue and process Jobs
 /// This is not tested yet
 /// </summary>
 private void RunRemoteTransactionalFramework()
 {
     MessageQueue workflowQueue = new MessageQueue(ProcessorQueue.MessageQueue);
     ((XmlMessageFormatter)workflowQueue.Formatter).TargetTypes = new System.Type[] { Type.GetType(Utils.MESSAGE_BASE_TYPE + "." + processorJob.MessageClass) };
     workflowQueue.MessageReadPropertyFilter.Priority = true;
     workflowQueue.PeekCompleted += new PeekCompletedEventHandler(workflowQueue_PeekCompleted);
     pool.WaitOne();
     workflowQueue.BeginPeek();
     while (!StopProcess)
     {
         Thread.Sleep(TimeSpan.FromSeconds(10));
     }
 }
开发者ID:invertedsoftware,项目名称:Inverted-Software-Workflow-Engine,代码行数:17,代码来源:Processor.cs

示例10: Init

        public void Init()
        {
            // open Listener queue
            m_InQueue = new MessageQueue(ListenerPath);
            m_InQueue.Formatter = new BinaryMessageFormatter();
            m_InQueue.MessageReadPropertyFilter.AcknowledgeType = true;
            m_InQueue.MessageReadPropertyFilter.TimeToBeReceived = true;
            m_InQueue.MessageReadPropertyFilter.SourceMachine = true;
            m_InQueue.MessageReadPropertyFilter.SentTime = true;
            m_InQueue.MessageReadPropertyFilter.ResponseQueue = true;
            m_InQueue.PeekCompleted += new PeekCompletedEventHandler(Manager);
            m_Listening = true;
            m_InQueue.BeginPeek();

            // both queue have to be transactional for retry mechanism
            if(m_InQueue.Transactional)
            {
                // retry queue path
                m_RetryQueuePath = ListenerPath + "_retry";
                m_RetryQueue = new MessageQueue(m_RetryQueuePath);
                if(m_RetryQueue.Transactional)
                {
                    m_RetryQueue.Formatter = new BinaryMessageFormatter();
                    m_RetryQueue.MessageReadPropertyFilter.ArrivedTime = true;
                    m_RetryQueue.PeekCompleted += new PeekCompletedEventHandler(RetryManager);
                    m_RetryListening = true;
                    m_RetryQueue.BeginPeek();
                }
                else
                {
                    m_RetryQueue.Close();
                    m_RetryQueue = null;
                }
            }
        }
开发者ID:yallie,项目名称:zyan,代码行数:35,代码来源:Listener.cs

示例11: Start

        public void Start()
        {
            // Any messages that fail conversion to a transportmessage is sent to the particular.servicecontrol.errors queue using low level Api
            // The actual queue name is based on service name to support mulitple instances on same host (particular.servicecontrol.errors is the default)
            var serviceControlErrorQueueAddress = Address.Parse(string.Format("{0}.errors", Settings.ServiceName));
            serviceControlErrorQueue = new MessageQueue(MsmqUtilities.GetFullPath(serviceControlErrorQueueAddress), false, true, QueueAccessMode.Send);

            if (!enabled)
            {
                return;
            }

            if (Settings.AuditQueue == Address.Undefined)
            {
                Logger.Info("No Audit queue has been configured. No audit import will be performed. To enable imports add the ServiceBus/AuditQueue appsetting and restart ServiceControl");
                return;
            }

            if (TerminateIfForwardingIsEnabledButQueueNotWritable())
            {
                return;
            }

            performanceCounters.Initialize();

            queuePeeker = new MessageQueue(MsmqUtilities.GetFullPath(Settings.AuditQueue), QueueAccessMode.Peek);
            queuePeeker.MessageReadPropertyFilter.ClearAll();
            queuePeeker.PeekCompleted += QueueOnPeekCompleted;

            enrichers = builder.BuildAll<IEnrichImportedMessages>().ToList();

            Logger.InfoFormat("MSMQ Audit import is now started, feeding audit messages from: {0}", Settings.AuditQueue);

            countDownEvent.Idle += OnIdle;

            Logger.Debug("Ready to BeginPeek");
            queuePeeker.BeginPeek();
        }
开发者ID:AlexRhees,项目名称:ServiceControl,代码行数:38,代码来源:MsmqAuditQueueImporter.cs

示例12: Start

        public void Start()
        {
            if (haveStarted)
                return;

            logger.DebugFormat("Starting msmq transport on: {0}", Endpoint);
            queue = InitalizeQueue(endpoint);

            if(subQueueInitializer != null)
            {
                subQueueInitializer.InitializeSubQueues(Endpoint,queue.Transactional);
            }

            foreach (var messageAction in messageActions)
            {
                messageAction.Init(this);
            }

            for (var t = 0; t < threadCount; t++)
            {
                var waitHandle = new ManualResetEvent(true);
                waitHandles[t] = waitHandle;
                try
                {
                    queue.BeginPeek(TimeOutForPeek, new QueueState
                    {
                        Queue = queue,
                        WaitHandle = waitHandle
                    }, OnPeekMessage);
                    waitHandle.Reset();
                }
                catch (Exception e)
                {
                    throw new TransportException("Unable to start reading from queue: " + endpoint, e);
                }
            }

            haveStarted = true;
        }
开发者ID:brumschlag,项目名称:rhino-tools,代码行数:39,代码来源:MsmqTransport.cs

示例13: AsyncReceiveWithTransactional

        /// <summary>
        /// 异步接收事务消息队列消息
        /// 异步接收BeginReceive()方法无MessageQueueTransaction重载(微软类库的Bug?)
        /// 这里变通一下:先异步BeginPeek(),然后带事务异步接收Receive(MessageQueueTransaction)
        /// </summary>
        private void AsyncReceiveWithTransactional()
        {
            var messageQueue = new MessageQueue(_transactionalQueuePath)
            {
                Formatter = new XmlMessageFormatter(new Type[] { typeof(MessageObj) })
            };
            messageQueue.PeekCompleted += new PeekCompletedEventHandler(OnPeekCompleted);

            //lblBeginTime.Text = DateTime.Now.ToString();
            using (var messageEnumerator = messageQueue.GetMessageEnumerator2())
            {
                while (messageEnumerator.MoveNext())
                {
                    try
                    {
                        messageQueue.BeginPeek();
                    }
                    catch (Exception ex)
                    {
                        Debug.WriteLine("Exception:ReceiveMessage Exception:" + ex);
                    }
                }
            }

            //lblEndTime.Text = DateTime.Now.ToString();
            MessageBox.Show("Receive Done!");
        }
开发者ID:gy09535,项目名称:redis,代码行数:32,代码来源:Form1.cs


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