MessageQueue.PeekById Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
İletiyi kuyruktan kaldırmadan belirtilen ileti tanımlayıcısını içeren iletinin bir kopyasını döndürür.
Aşırı Yüklemeler
PeekById(String) |
İleti tanımlayıcısı parametresiyle eşleşen iletiyi özetler |
PeekById(String, TimeSpan) |
İleti tanımlayıcısı parametresiyle eşleşen iletiyi özetler |
PeekById(String)
İleti tanımlayıcısı parametresiyle eşleşen iletiyi özetler 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
Parametreler
Döndürülenler
MessageId özelliği parametresiyle eşleşirid
.
Özel durumlar
id
parametresidirnull
.
Belirtilen id
ileti yok.
Message Queuing yöntemine erişilirken bir hata oluştu.
Örnekler
Aşağıdaki kod örneğinde kullanımı gösterilmektedir 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);
Açıklamalar
Kuyruktan kaldırmadan bilinen bir ileti tanımlayıcısı olan bir iletiyi okumak için kullanın PeekById(String) . İletinin tanımlayıcısı Message Queuing kuruluşunda benzersizdir, bu nedenle kuyrukta verilen id
parametreyle eşleşen en fazla bir ileti olacaktır. Kuyruk şu anda iletiyi içermiyorsa bu aşırı yükleme bir özel durum oluşturur.
İki ek yöntem, kuyruktaki iletilere göz atmanıza olanak sağlar: Peek ve PeekByCorrelationId(String). Peek yöntemi kuyruktaki ilk iletiyi döndürür; PeekByCorrelationId(String) kuyruğa gönderilen bir iletinin sonucu olarak oluşturulan bir bildirim, rapor veya uygulama tarafından oluşturulan yanıt iletisini döndürür.
Aşağıdaki tabloda bu yöntemin çeşitli Çalışma Grubu modlarında kullanılabilir olup olmadığı gösterilmektedir.
Çalışma grubu modu | Kullanılabilir |
---|---|
Yerel bilgisayar | Yes |
Yerel bilgisayar ve doğrudan biçim adı | Yes |
Uzak bilgisayar | No |
Uzak bilgisayar ve doğrudan biçim adı | Yes |
Ayrıca bkz.
Şunlara uygulanır
PeekById(String, TimeSpan)
İleti tanımlayıcısı parametresiyle eşleşen iletiyi özetler id
. İleti kuyrukta görünene veya zaman aşımı oluşana kadar bekler.
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
Parametreler
- timeout
- TimeSpan
TimeSpan İnceleme için yeni bir ileti sağlanana kadar beklenebilecek süreyi gösteren bir.
Döndürülenler
MessageId özelliği parametresiyle eşleşirid
.
Özel durumlar
id
parametresidirnull
.
parametresi için timeout
belirtilen değer geçerli değil, büyük olasılıkla timeout
değerinden Zero küçük veya büyüktür InfiniteTimeout.
Belirtilen id
ileti kuyrukta yok ve parametresi tarafından timeout
belirtilen süre dolmadan önce gelmedi.
Message Queuing yöntemine erişilirken bir hata oluştu.
Örnekler
Aşağıdaki kod örneğinde kullanımı gösterilmektedir 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));
Açıklamalar
Kuyruktan kaldırmadan bilinen bir ileti tanımlayıcısı olan bir iletiyi okumak için kullanın PeekById(String) . İletinin tanımlayıcısı Message Queuing kuruluşunda benzersizdir, bu nedenle kuyrukta verilen id
parametreyle eşleşen en fazla bir ileti olacaktır. Bu aşırı yükleme, kuyruk şu anda iletiyi içermiyorsa ve zaman aşımı gerçekleşmeden önce yeni bir ileti gelmezse bir özel durum oluşturur.
timeout
parametresi bu yöntem için toplam çalışma süresini belirtmez. Bunun yerine, yeni bir iletinin kuyruğa gelmesini bekleme süresini belirtir. Her yeni ileti geldiğinde, bu yöntem yeni iletinin parametresiyle eşleşip eşleşmediğini id
görmek için iletisini incelerId. Aksi takdirde, bu yöntem zaman aşımı süresini başlatır ve başka bir yeni iletinin gelmesini bekler. Bu nedenle, yeni iletiler zaman aşımı süresi içinde gelmeye devam ederse, zaman aşımı süresi dolana kadar veya parametresiyle eşleşen bir ileti gelene Id kadar bu yöntemin süresiz olarak çalışmaya devam etmesi id
mümkündür.
İki ek yöntem, kuyruktaki iletilere göz atmanıza olanak sağlar: Peek ve PeekByCorrelationId(String). Peek yöntemi kuyruktaki ilk iletiyi döndürür; PeekByCorrelationId(String) kuyruğa gönderilen bir iletinin sonucu olarak oluşturulan bir bildirim, rapor veya uygulama tarafından oluşturulan yanıt iletisini döndürür.
Aşağıdaki tabloda bu yöntemin çeşitli Çalışma Grubu modlarında kullanılabilir olup olmadığı gösterilmektedir.
Çalışma grubu modu | Kullanılabilir |
---|---|
Yerel bilgisayar | Yes |
Yerel bilgisayar ve doğrudan biçim adı | Yes |
Uzak bilgisayar | No |
Uzak bilgisayar ve doğrudan biçim adı | Yes |