HOW TO:以程式設計方式接收訊息
更新:2007 年 11 月
您可以使用名為 Receive 的同步方法查看佇列的內容。當您在佇列上呼叫 Receive 方法時,系統會從佇列移除第一個訊息,並將它傳送給您。其他也在查看佇列的元件就無法取得這個訊息。
注意事項: |
---|
您也可以查看佇列上的第一個訊息,而不需將它從佇列移除。如需詳細資訊,請參閱 HOW TO:窺視訊息。也可以非同步接收訊息。如需詳細資訊,請參閱 HOW TO:以非同步方式接收訊息。 |
如果當您呼叫 Receive 方法時佇列上並沒有訊息,則方法會等候直到訊息到達佇列。如果只要方法等候指定的一段時間,您可以指定逾時時限。逾時時限是以 TimeSpan 物件來指定。
當您從佇列讀取訊息時,您會使用格式子物件來序列化和還原序列化訊息的內容以操作訊息。如需詳細資訊,請參閱讀取和擷取訊息簡介。
Receive 方法有數種形式:
具有數個多載的基本方法,可讓您指定諸如逾時週期的事項。
稱為 ReceiveById 的方法,可讓您依照其識別項來擷取特定訊息。
稱為 ReceiveByCorrelationId 的方法,可讓您依照相互關聯 ID 來擷取訊息。
如需相互關聯 ID 的說明,請參閱訊息佇列日誌儲存區。
若要利用程式接收訊息
建立 MessageQueue 元件的執行個體,並將其 Path 屬性設定為您要參考的佇列。如需詳細資訊,請參閱 HOW TO:建立 MessageQueue 元件執行個體。
指定要用來擷取您訊息的格式子。如需詳細資訊,請參閱 HOW TO:指定已擷取訊息的格式子。
建立 Message 物件的執行個體來儲存所擷取的訊息。
呼叫 Receive 方法將訊息從佇列移除。
秘訣 Dim mq As New System.Messaging.MessageQueue(".\MyQueue") mq.Send("1", "1") Dim m As System.Messaging.Message m = mq.Receive(New TimeSpan(0, 0, 3)) m.Formatter = New _ System.Messaging.XmlMessageFormatter(New String() _ {"System.String,mscorlib"}) Console.WriteLine(m.Body)
System.Messaging.MessageQueue mq = new System.Messaging.MessageQueue(".\\MyQueue"); mq.Send("1", "1"); System.Messaging.Message m = mq.Receive(new TimeSpan(0, 0, 3)); m.Formatter = new System.Messaging.XmlMessageFormatter(new string[] { "System.String,mscorlib" }); Console.WriteLine(m.Body);
這個程式碼範例也可做為 Visual Basic IntelliSense 程式碼片段。在程式碼片段選擇器中,它位於 [Windows 作業系統] > [訊息佇列] 中。如需詳細資訊,請參閱 HOW TO:在您的程式碼中插入程式碼片段 (Visual Basic)。