C アプリケーションがメッセージ・リスナー関数とコンテキスト・データをメッセージ・コンシューマーに登録するか、C++ アプリケーションがメッセージ・リスナーをメッセージ・コンシューマーに登録すると、アプリケーションは非同期状態でメッセージを受信できます。
メッセージがメッセージ・コンシューマーに到着すると、XMS はメッセージ・リスナー関数を呼び出し、コンテキスト・データを指すポインターを一方のパラメーターとして渡し、メッセージのハンドルをもう一方のパラメーターとして渡すことによって、C アプリケーションにメッセージを配信します。 XMS は、メッセージ・リスナーの onMessage() メソッドを呼び出して、メッセージを指すポインターをパラメーターとして渡すことにより、C++ アプリケーションにメッセージを配信します。
XMS は、1 つのスレッドを使用して、あるセッションのすべての非同期メッセージ配信を処理します。 このことは、一度に実行できるのは 1 つのメッセージ・リスナー関数または 1 つの onMessage() メソッドのみであるという意味です。 あるセッションで複数のメッセージ・コンシューマーが複数のメッセージを非同期で受信しており、メッセージ・リスナー関数または onMessage() メソッドは、現在 1 つのメッセージを 1 つのメッセージ・コンシューマーに配信している場合、同じメッセージを待っているその他のメッセージ・コンシューマーは、引き続き待機する必要があります。セッションへの配信を待機中のその他のメッセージも、引き続き待機する必要があります。
アプリケーションは、メッセージを並行して配信する必要がある場合、複数のセッションを作成する必要があるため、XMS は、複数のスレッドを使用して非同期メッセージ配信を処理します。 このような方法により、複数のメッセージ・リスナー関数または onMessage() メソッドを並行して実行できます。
C アプリケーションでメッセージ・リスナー関数を使用することの詳細については、C でのメッセージ・リスナー関数の使用法を参照してください。 C++ を使用している場合は、C++ でのメッセージ・リスナーの使用法を参照してください。