MessageQueue.PeekById Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает копию сообщения с указанным идентификатором сообщения без удаления сообщения из очереди.
Перегрузки
| Имя | Описание |
|---|---|
| PeekById(String) |
Выводит сообщение, идентификатор сообщения которого соответствует параметру |
| PeekById(String, TimeSpan) |
Выводит сообщение, идентификатор сообщения которого соответствует параметру |
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
Параметры
Возвращаемое значение
Свойство 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
Параметры
- 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 |