MessageQueue.PeekById Метод

Определение

Возвращает копию сообщения с указанным идентификатором сообщения без удаления сообщения из очереди.

Перегрузки

Имя Описание
PeekById(String)

Выводит сообщение, идентификатор сообщения которого соответствует параметру id .

PeekById(String, TimeSpan)

Выводит сообщение, идентификатор сообщения которого соответствует параметру id . Ожидает, пока сообщение не появится в очереди или время ожидания.

PeekById(String)

Выводит сообщение, идентификатор сообщения которого соответствует параметру id .

public:
 System::Messaging::Message ^ PeekById(System::String ^ id);
public System.Messaging.Message PeekById(string id);
member this.PeekById : string -> System.Messaging.Message
Public Function PeekById (id As String) As Message

Параметры

id
String

Id сообщения для просмотра.

Возвращаемое значение

Свойство Message которого Id соответствует параметру id .

Исключения

Параметр id имеет значение null.

Сообщение с указанным id значением не существует.

Произошла ошибка при доступе к методу очереди сообщений.

Примеры

В следующем примере кода показано использование PeekById(String).


// Connect to a queue on the local computer.
MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue");

// Create a new message.
Message^ msg = gcnew Message("Example Message Body");

// Send the message.
queue->Send(msg, "Example Message Label");

// Get the message's Id property value.
String^ id = msg->Id;

// Simulate doing other work so the message has time to arrive.
System::Threading::Thread::Sleep(TimeSpan::FromSeconds(10.0));

// Peek at the message.
msg = queue->PeekById(id);

queue->Close();

// Connect to a queue on the local computer.
MessageQueue queue = new MessageQueue(".\\exampleQueue");

// Create a new message.
Message msg = new Message("Example Message Body");

// Send the message.
queue.Send(msg, "Example Message Label");

// Get the message's Id property value.
string id = msg.Id;

// Simulate doing other work so the message has time to arrive.
System.Threading.Thread.Sleep(TimeSpan.FromSeconds(10.0));

// Peek at the message.
msg = queue.PeekById(id);

Комментарии

Используется PeekById(String) для чтения без удаления из очереди сообщения с известным идентификатором сообщения. Идентификатор сообщения является уникальным для предприятия очереди сообщений, поэтому в очереди будет по крайней мере одно сообщение, соответствующее заданному id параметру. Эта перегрузка создает исключение, если очередь в настоящее время не содержит сообщение.

Два дополнительных метода позволяют просмотреть сообщения в очереди: Peek и PeekByCorrelationId(String). Метод Peek возвращает первое сообщение в очереди; PeekByCorrelationId(String) возвращает подтверждение, отчет или созданное приложением ответное сообщение, созданное в результате отправки сообщения в очередь.

В следующей таблице показано, доступен ли этот метод в различных режимах рабочей группы.

Режим рабочей группы В наличии
Локальный компьютер Yes
Имя локального компьютера и прямого формата Yes
Удаленный компьютер Нет
Имя удаленного компьютера и прямого формата Yes

См. также раздел

Применяется к

PeekById(String, TimeSpan)

Выводит сообщение, идентификатор сообщения которого соответствует параметру id . Ожидает, пока сообщение не появится в очереди или время ожидания.

public:
 System::Messaging::Message ^ PeekById(System::String ^ id, TimeSpan timeout);
public System.Messaging.Message PeekById(string id, TimeSpan timeout);
member this.PeekById : string * TimeSpan -> System.Messaging.Message
Public Function PeekById (id As String, timeout As TimeSpan) As Message

Параметры

id
String

Id сообщения для просмотра.

timeout
TimeSpan

Значение TimeSpan , указывающее время ожидания, пока новое сообщение не будет доступно для проверки.

Возвращаемое значение

Свойство Message которого Id соответствует параметру id .

Исключения

Параметр id имеет значение null.

Значение, указанное timeout для параметра, недопустимо, возможно timeout , меньше Zero или больше InfiniteTimeout.

Сообщение с указанным id не существует в очереди и не прибыло до истечения срока, указанного timeout параметром.

Произошла ошибка при доступе к методу очереди сообщений.

Примеры

В следующем примере кода показано использование PeekById(String, TimeSpan).


// Connect to a queue on the local computer.
MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue");

// Create a new message.
Message^ msg = gcnew Message("Example Message Body");

// Send the message.
queue->Send(msg, "Example Message Label");

// Get the message's Id property value.
String^ id = msg->Id;

// Peek at the message.
msg = queue->PeekById(id, TimeSpan::FromSeconds(10.0));

queue->Close();

// Connect to a queue on the local computer.
MessageQueue queue = new MessageQueue(".\\exampleQueue");

// Create a new message.
Message msg = new Message("Example Message Body");

// Send the message.
queue.Send(msg, "Example Message Label");

// Get the message's Id property value.
string id = msg.Id;

// Peek at the message.
msg = queue.PeekById(id, TimeSpan.FromSeconds(10.0));

Комментарии

Используется PeekById(String) для чтения без удаления из очереди сообщения с известным идентификатором сообщения. Идентификатор сообщения является уникальным для предприятия очереди сообщений, поэтому в очереди будет по крайней мере одно сообщение, соответствующее заданному id параметру. Эта перегрузка создает исключение, если очередь в настоящее время не содержит сообщение, и новое сообщение не поступает до истечения времени ожидания.

Параметр timeout не указывает общее время выполнения этого метода. Скорее, он указывает время ожидания нового сообщения в очередь. Каждый раз при поступлении нового сообщения этот метод проверяет Id новое сообщение, чтобы узнать, соответствует ли он параметру id . Если нет, этот метод запускает период ожидания и ожидает поступления другого нового сообщения. Таким образом, если новые сообщения продолжают поступать в течение периода ожидания, этот метод может продолжать работать бесконечно, либо до истечения срока ожидания без новых сообщений, либо до тех пор, пока сообщение не поступает, соответствующее Id параметру id .

Два дополнительных метода позволяют просмотреть сообщения в очереди: Peek и PeekByCorrelationId(String). Метод Peek возвращает первое сообщение в очереди; PeekByCorrelationId(String) возвращает подтверждение, отчет или созданное приложением ответное сообщение, созданное в результате отправки сообщения в очередь.

В следующей таблице показано, доступен ли этот метод в различных режимах рабочей группы.

Режим рабочей группы В наличии
Локальный компьютер Yes
Имя локального компьютера и прямого формата Yes
Удаленный компьютер Нет
Имя удаленного компьютера и прямого формата Yes

См. также раздел

Применяется к