다음을 통해 공유


방법: 프로그래밍 방식으로 메시지 받기

업데이트: 2007년 11월

Receive라는 동기 메서드를 사용하여 큐의 내용을 볼 수 있습니다. 큐에서 Receive 메서드를 호출하면 시스템에서 큐의 첫 번째 메시지를 제거하고 이를 반환합니다. 이 메시지는 큐를 보고 있는 다른 구성 요소에는 더 이상 사용할 수 없습니다.

참고:

또한 큐의 첫 번째 메시지를 큐에서 제거하지 않고 볼 수 있습니다. 자세한 내용은 방법: 메시지 피킹(Peeking)을 참조하십시오. 메시지를 비동기적으로 받을 수도 있습니다. 자세한 내용은 방법: 비동기적으로 메시지 받기를 참조하십시오.

Receive 메서드를 호출할 때 큐에 사용할 수 있는 메시지가 없으면 이 메서드는 큐에 메시지가 도착할 때까지 기다립니다. 지정된 시간 동안만 메서드가 기다리도록 하려면 제한 시간을 지정하면 됩니다. 제한 시간은 TimeSpan 개체로 지정됩니다.

큐에서 메시지를 읽는 경우 포맷터 개체는 메시지를 조작할 때처럼 메시지의 내용을 serialize 및 deserialize하는 데 사용됩니다. 자세한 내용은 메시지 읽기 및 검색 소개를 참조하십시오.

Receive 메서드에는 다음과 같은 몇 가지 형식이 있습니다.

  • 제한 시간 등을 지정할 수 있는 몇 개의 오버로드가 있는 기본 메서드

  • 식별자로 특정 메시지를 검색할 수 있는 ReceiveById 메서드

  • 상관 관계 ID를 검색할 수 있는 ReceiveByCorrelationId 메서드

상관 관계 ID에 대한 설명은 메시지 큐 업무 일지 저장을 참조하십시오.

프로그래밍 방식으로 메시지를 받으려면

  1. MessageQueue 구성 요소의 인스턴스를 만들고 Path 속성을 참조할 큐로 설정합니다. 자세한 내용은 방법: MessageQueue 구성 요소 인스턴스 만들기를 참조하십시오.

  2. 메시지를 검색하는 데 사용할 포맷터를 지정합니다. 자세한 내용은 방법: 검색된 메시지의 포맷터 지정을 참조하십시오.

  3. 검색된 메시지를 저장할 Message 개체의 인스턴스를 만듭니다.

  4. Receive 메서드를 호출하여 큐에서 메시지를 제거합니다.

    팁:

    Receive 메서드에 대한 시간 제한을 지정하려면 TimeSpan 개체를 사용하여 메서드가 기다릴 시간을 지정합니다.

    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 운영 체제 > 메시지 큐에 있습니다. 자세한 내용은 방법: 사용자 코드에 코드 조각 삽입(Visual Basic)을 참조하십시오.

참고 항목

작업

방법: 메시지 피킹(Peeking)

방법: 비동기적으로 메시지 받기

방법: MessageQueue 구성 요소 인스턴스 만들기

방법: 검색된 메시지의 포맷터 지정

기타 리소스

메시지 읽기 및 받기