MessageQueue.GetMessageEnumerator メソッド
アセンブリ: System.Messaging (system.messaging.dll 内)

<ObsoleteAttribute("This method returns a MessageEnumerator that implements RemoveCurrent family of methods incorrectly. Please use GetMessageEnumerator2 instead.")> _ Public Function GetMessageEnumerator As MessageEnumerator
Dim instance As MessageQueue Dim returnValue As MessageEnumerator returnValue = instance.GetMessageEnumerator
[ObsoleteAttribute("This method returns a MessageEnumerator that implements RemoveCurrent family of methods incorrectly. Please use GetMessageEnumerator2 instead.")] public MessageEnumerator GetMessageEnumerator ()
[ObsoleteAttribute(L"This method returns a MessageEnumerator that implements RemoveCurrent family of methods incorrectly. Please use GetMessageEnumerator2 instead.")] public: MessageEnumerator^ GetMessageEnumerator ()
/** @attribute ObsoleteAttribute("This method returns a MessageEnumerator that implements RemoveCurrent family of methods incorrectly. Please use GetMessageEnumerator2 instead.") */ public MessageEnumerator GetMessageEnumerator ()
ObsoleteAttribute("This method returns a MessageEnumerator that implements RemoveCurrent family of methods incorrectly. Please use GetMessageEnumerator2 instead.") public function GetMessageEnumerator () : MessageEnumerator
キューに含まれるメッセージを保持する MessageEnumerator。

GetMessageEnumerator は、キューにあるすべてのメッセージの動的リストを作成します。GetMessageEnumerator が返す MessageEnumerator に対して RemoveCurrent を呼び出して、列挙子の現在の位置にあるメッセージをキューから削除できます。
カーソルは、キューにあるメッセージの動的リストに関連付けられるため、メッセージが現在のカーソル位置よりも後ろにあれば、列挙体はキューのメッセージに対して行った変更を反映します。たとえば、カーソルの現在位置よりも後ろに配置された優先順位が低いメッセージに列挙子は自動的にアクセスできます。しかし、その位置よりも前に挿入された優先順位が高いメッセージにはアクセスできません。ただし、列挙体はリセットできます。つまり、MessageEnumerator に対して Reset を呼び出して、リストの先頭にカーソルを戻すことができます。
列挙体の中でのメッセージの順序は、キューの中での順序を反映します。そのため、優先順位が高いメッセージは、優先順位が低いメッセージよりも前に出現します。
キューにあるメッセージへの動的接続ではなく、静的スナップショットが必要な場合は、GetAllMessages を呼び出します。このメソッドは、メソッドが呼び出された時点でのメッセージを表す Message オブジェクトの配列を返します。
このメソッドが各種のワークグループ モードで使用できるかどうかを次の表に示します。

キューにあるメッセージの動的リストを取得し、Priority プロパティが MessagePriority.Lowest に設定されたすべてのメッセージをカウントするコード例を次に示します。
Imports System Imports System.Messaging Public Class MyNewQueue ' Provides an entry point into the application. ' ' This example uses a cursor to step through the ' messages in a queue and counts the number of ' Lowest priority messages. Public Shared Sub Main() ' Create a new instance of the class. Dim myNewQueue As New MyNewQueue() ' Output the count of Lowest priority messages. myNewQueue.CountLowestPriority() Return End Sub 'Main ' Iterates through messages in a queue and examines ' their priority. Public Sub CountLowestPriority() ' Holds the count of Lowest priority messages. Dim numberItems As Int32 = 0 ' Connect to a queue. Dim myQueue As New MessageQueue(".\myQueue") ' Get a cursor into the messages in the queue. Dim myEnumerator As MessageEnumerator = _ myQueue.GetMessageEnumerator() ' Specify that the messages's priority should be read. myQueue.MessageReadPropertyFilter.Priority = True ' Move to the next message and examine its priority. While myEnumerator.MoveNext() ' Increase the count if the priority is Lowest. If myEnumerator.Current.Priority = _ MessagePriority.Lowest Then numberItems += 1 End If End While ' Display final count. Console.WriteLine(("Lowest priority messages: " + _ numberItems.ToString())) Return End Sub 'CountLowestPriority End Class 'MyNewQueue
using System; using System.Messaging; namespace MyProject { /// <summary> /// Provides a container class for the example. /// </summary> public class MyNewQueue { //************************************************** // Provides an entry point into the application. // // This example uses a cursor to step through the // messages in a queue and counts the number of // Lowest priority messages. //************************************************** public static void Main() { // Create a new instance of the class. MyNewQueue myNewQueue = new MyNewQueue(); // Output the count of Lowest priority messages. myNewQueue.CountLowestPriority(); return; } //************************************************** // Iterates through messages in a queue and examines // their priority. //************************************************** public void CountLowestPriority() { // Holds the count of Lowest priority messages. uint numberItems = 0; // Connect to a queue. MessageQueue myQueue = new MessageQueue(".\\myQueue"); // Get a cursor into the messages in the queue. MessageEnumerator myEnumerator = myQueue.GetMessageEnumerator(); // Specify that the messages's priority should be read. myQueue.MessageReadPropertyFilter.Priority = true; // Move to the next message and examine its priority. while(myEnumerator.MoveNext()) { // Increase the count if priority is Lowest. if(myEnumerator.Current.Priority == MessagePriority.Lowest) numberItems++; } // Display final count. Console.WriteLine("Lowest priority messages: " + numberItems.ToString()); return; } } }
#using <system.dll> #using <system.messaging.dll> using namespace System; using namespace System::Messaging; ref class MyNewQueue { public: void CountLowestPriority() { // Holds the count of Lowest priority messages. UInt32 numberItems = 0; // Connect to a queue. MessageQueue^ myQueue = gcnew MessageQueue( ".\\myQueue" ); // Get a cursor into the messages in the queue. MessageEnumerator^ myEnumerator = myQueue->GetMessageEnumerator(); // Specify that the messages's priority should be read. myQueue->MessageReadPropertyFilter->Priority = true; // Move to the next message and examine its priority. while ( myEnumerator->MoveNext() ) { // Increase the count if priority is Lowest. if ( myEnumerator->Current->Priority == MessagePriority::Lowest ) numberItems++; } // Display final count. Console::WriteLine( "Lowest priority messages: {0}", numberItems ); return; } }; int main() { // Create a new instance of the class. MyNewQueue^ myNewQueue = gcnew MyNewQueue; // Output the count of Lowest priority messages. myNewQueue->CountLowestPriority(); return 0; }
package MyProject; import System.*; import System.Messaging.*; /// <summary> /// Provides a container class for the example. /// </summary> public class MyNewQueue { //************************************************** // Provides an entry point into the application. // // This example uses a cursor to step through the // messages in a queue and counts the number of // Lowest priority messages. //************************************************** public static void main(String[] args) { // Create a new instance of the class. MyNewQueue myNewQueue = new MyNewQueue(); // Output the count of Lowest priority messages. myNewQueue.CountLowestPriority(); return; } //main //************************************************** // Iterates through messages in a queue and examines // their priority. //************************************************** public void CountLowestPriority() { // Holds the count of Lowest priority messages. long numberItems = 0; // Connect to a queue. MessageQueue myQueue = new MessageQueue(".\\myQueue"); // Get a cursor into the messages in the queue. MessageEnumerator myEnumerator = myQueue.GetMessageEnumerator(); // Specify that the messages's priority should be read. myQueue.get_MessageReadPropertyFilter().set_Priority(true); // Move to the next message and examine its priority. while (myEnumerator.MoveNext()) { // Increase the count if priority is Lowest. if (myEnumerator.get_Current().get_Priority(). Equals(MessagePriority.Lowest)) { numberItems++; } } // Display final count. Console.WriteLine("Lowest priority messages: " + ((Int32)numberItems).ToString()); return; } //CountLowestPriority } //MyNewQueue


Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。

サポート対象 : 1.0、1.1
2.0 では、互換性のために残されています (コンパイル時に警告)
.NET Compact Framework
2.0 では、互換性のために残されています (コンパイル時に警告)

MessageQueue クラス
MessageQueue メンバ
System.Messaging 名前空間
GetAllMessages
GetMessageEnumerator2
GetMessageQueueEnumerator
- MessageQueue.GetMessageEnumerator メソッドのページへのリンク