MessageQueue.EndReceive メソッドとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > MessageQueue.EndReceive メソッドの意味・解説 

MessageQueue.EndReceive メソッド

指定した非同期受信操作完了します

名前空間: System.Messaging
アセンブリ: System.Messaging (system.messaging.dll 内)
構文構文

Public Function EndReceive ( _
    asyncResult As IAsyncResult _
) As Message
Dim instance As MessageQueue
Dim asyncResult As IAsyncResult
Dim returnValue As Message

returnValue = instance.EndReceive(asyncResult)
public Message EndReceive (
    IAsyncResult asyncResult
)
public:
Message^ EndReceive (
    IAsyncResult^ asyncResult
)
public Message EndReceive (
    IAsyncResult asyncResult
)
public function EndReceive (
    asyncResult : IAsyncResult
) : Message

パラメータ

asyncResult

完了する非同期受信操作識別する IAsyncResult。ここから終了結果取得されます。

戻り値
完了する非同期操作関連付けられた Message

例外例外
例外種類条件

ArgumentNullException

asyncResult パラメータnull 参照 (Visual Basic では Nothing) です。

ArgumentException

asyncResult パラメータ構文無効です。

MessageQueueException

メッセージ キューメソッドアクセスしたときにエラー発生しました

解説解説
使用例使用例

非同期要求チェーンするコード例次に示しますローカル コンピュータに "myQueue" というキューがあることを前提にしています。Main 関数は、MyReceiveCompleted ルーチン処理される非同期操作開始しますMyReceiveCompleted現在のメッセージ処理し新し非同期受信操作開始します

Imports System
Imports System.Messaging
Imports System.Threading




' Provides a container class for the example.

Public Class MyNewQueue

        ' Define static class members.
        Private Shared signal As
 New ManualResetEvent(False)
        Private Shared count As
 Integer = 0



        ' Provides an entry point into the application.
        '         
        ' This example performs asynchronous receive
        ' operation processing.


        Public Shared Sub
 Main()
            ' Create an instance of MessageQueue. Set its formatter.
            Dim myQueue As New
 MessageQueue(".\myQueue")
            myQueue.Formatter = New XmlMessageFormatter(New
 Type() _
                {GetType([String])})

            ' Add an event handler for the ReceiveCompleted event.
            AddHandler myQueue.ReceiveCompleted, AddressOf
 _
                MyReceiveCompleted

            ' Begin the asynchronous receive operation.
            myQueue.BeginReceive()

            signal.WaitOne()

            ' Do other work on the current thread.

            Return

        End Sub 'Main



        ' Provides an event handler for the ReceiveCompleted
        ' event.


        Private Shared Sub
 MyReceiveCompleted(ByVal [source] As _
            [Object], ByVal asyncResult As
 ReceiveCompletedEventArgs)

            Try
                ' Connect to the queue.
                Dim mq As MessageQueue = CType([source],
 MessageQueue)

                ' End the asynchronous receive operation.
                Dim m As Message = _
                    mq.EndReceive(asyncResult.AsyncResult)

                count += 1
                If count = 10 Then
                    signal.Set()
                End If

                ' Restart the asynchronous receive operation.
                mq.BeginReceive()

            Catch
                ' Handle sources of MessageQueueException.

                ' Handle other exceptions.

            End Try

            Return

        End Sub 'MyReceiveCompleted

End Class 'MyNewQueue

using System;
using System.Messaging;
using System.Threading;

namespace MyProject
{
    /// <summary>
    /// Provides a container class for the example.
    /// </summary>
    public class MyNewQueue
    {
        // Define static class members.
        static ManualResetEvent signal = new
 ManualResetEvent(false);
        static int count = 0;

        //**************************************************
        // Provides an entry point into the application.
        //         
        // This example performs asynchronous receive
        // operation processing.
        //**************************************************

        public static void
 Main()
        {
            // Create an instance of MessageQueue. Set its formatter.
            MessageQueue myQueue = new MessageQueue(".\\myQueue");
            myQueue.Formatter = new XmlMessageFormatter(new
 Type[]
                {typeof(String)});

            // Add an event handler for the ReceiveCompleted event.
            myQueue.ReceiveCompleted += 
                new ReceiveCompletedEventHandler(MyReceiveCompleted);
            
            // Begin the asynchronous receive operation.
            myQueue.BeginReceive();

            signal.WaitOne();
            
            // Do other work on the current thread.

            return;
        }


        //***************************************************
        // Provides an event handler for the ReceiveCompleted
        // event.
        //***************************************************
        
        private static void
 MyReceiveCompleted(Object source, 
            ReceiveCompletedEventArgs asyncResult)
        {
            try
            {
                // Connect to the queue.
                MessageQueue mq = (MessageQueue)source;

                // End the asynchronous receive operation.
                Message m = mq.EndReceive(asyncResult.AsyncResult);
                
                count += 1;
                if (count == 10)
                {
                    signal.Set();
                }

                // Restart the asynchronous receive operation.
                mq.BeginReceive();
            }
            catch(MessageQueueException)
            {
                // Handle sources of MessageQueueException.
            }
            
            // Handle other exceptions.
            
            return; 
        }
    }
}
#using <system.dll>
#using <system.messaging.dll>

using namespace System;
using namespace System::Messaging;
using namespace System::Threading;

ref class MyNewQueue
{
public:

   // Define static class members.
   static ManualResetEvent^ signal = gcnew ManualResetEvent( false
 );
   static int count = 0;

   // Provides an event handler for the ReceiveCompleted
   // event.
   static void MyReceiveCompleted( Object^
 source, ReceiveCompletedEventArgs^ asyncResult )
   {
      try
      {
         // Connect to the queue.
         MessageQueue^ mq = dynamic_cast<MessageQueue^>(source);

         // End the asynchronous receive operation.
         mq->EndReceive( asyncResult->AsyncResult );
         count += 1;
         if ( count == 10 )
         {
            signal->Set();
         }

         // Restart the asynchronous receive operation.
         mq->BeginReceive();
      }
      catch ( MessageQueueException^ ) 
      {
         // Handle sources of MessageQueueException.
      }

      // Handle other exceptions.
      return;
   }
};

// Provides an entry point into the application.
//         
// This example performs asynchronous receive
// operation processing.
int main()
{
   // Create an instance of MessageQueue. Set its formatter.
   MessageQueue^ myQueue = gcnew MessageQueue( ".\\myQueue" );
   array<Type^>^p = gcnew array<Type^>(1);
   p[ 0 ] = String::typeid;
   myQueue->Formatter = gcnew XmlMessageFormatter( p );

   // Add an event handler for the ReceiveCompleted event.
   myQueue->ReceiveCompleted += gcnew ReceiveCompletedEventHandler( MyNewQueue::MyReceiveCompleted
 );

   // Begin the asynchronous receive operation.
   myQueue->BeginReceive();
   MyNewQueue::signal->WaitOne();

   // Do other work on the current thread.
   return 0;
}
package MyProject;
import System.*;
import System.Messaging.*;
import System.Threading.*;

/// <summary>
/// Provides a container class for the example.
/// </summary>
public class MyNewQueue
{
    // Define static class members.
    private static ManualResetEvent signal
 = new ManualResetEvent(false);
    private static int count
 = 0;

    //**************************************************
    // Provides an entry point into the application.
    //         
    // This example performs asynchronous receive
    // operation processing.
    //**************************************************
    public static void main(String[]
 args)
    {
        // Create an instance of MessageQueue. Set its formatter.
        MessageQueue myQueue = new MessageQueue(".\\myQueue");
        myQueue.set_Formatter(new XmlMessageFormatter(new
 Type[] 
            { String.class.ToType() }));

        // Add an event handler for the ReceiveCompleted event.
        myQueue.add_ReceiveCompleted(new ReceiveCompletedEventHandler(
            MyReceiveCompleted));

        // Begin the asynchronous receive operation.
        myQueue.BeginReceive();
        signal.WaitOne();

        // Do other work on the current thread.

        return;
    } //main

    //***************************************************
    // Provides an event handler for the ReceiveCompleted
    // event.
    //***************************************************
    private static void
 MyReceiveCompleted(Object source, 
        ReceiveCompletedEventArgs asyncResult)
    {
        try {
            // Connect to the queue.
            MessageQueue mq = (MessageQueue)source;

            // End the asynchronous receive operation.
            Message m = mq.EndReceive(asyncResult.get_AsyncResult());

            count += 1;
            if (count == 10) {
                signal.Set();
            }

            // Restart the asynchronous receive operation.
            mq.BeginReceive();
        }
        catch (MessageQueueException exp) {
            // Handle sources of MessageQueueException.
        }

        // Handle other exceptions.

        return;
    } //MyReceiveCompleted
} //MyNewQueue
.NET Framework のセキュリティ.NET Frameworkセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照


このページでは「.NET Framework クラス ライブラリ リファレンス」からMessageQueue.EndReceive メソッドを検索した結果を表示しています。
Weblioに収録されているすべての辞書からMessageQueue.EndReceive メソッドを検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からMessageQueue.EndReceive メソッド を検索

英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「MessageQueue.EndReceive メソッド」の関連用語

MessageQueue.EndReceive メソッドのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



MessageQueue.EndReceive メソッドのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.

©2025 GRAS Group, Inc.RSS