次の方法で共有


MessageEnumerator.RemoveCurrent メソッド (TimeSpan, MessageQueueTransactionType)

キューから現在のメッセージを削除し、そのメッセージを呼び出し元アプリケーションに返します。削除するメッセージがある場合、メソッドはすぐにメッセージを返します。削除するメッセージがない場合、メソッドは新しいメッセージが到達するまで指定のタイムアウト時間だけ待機します。

Overloads Public Function RemoveCurrent( _
   ByVal timeout As TimeSpan, _   ByVal transactionType As MessageQueueTransactionType _) As Message
[C#]
public Message RemoveCurrent(TimeSpantimeout,MessageQueueTransactionTypetransactionType);
[C++]
public: Message* RemoveCurrent(TimeSpantimeout,MessageQueueTransactionTypetransactionType);
[JScript]
public function RemoveCurrent(
   timeout : TimeSpan,transactionType : MessageQueueTransactionType) : Message;

パラメータ

  • timeout
    削除するメッセージを待機する時間間隔。
  • transactionType
    メッセージと関連付けるトランザクション コンテキストの種類を示す、 MessageQueueTransactionType 値の 1 つ。

戻り値

キューで利用できる最初のメッセージを参照する Message

例外

例外の種類 条件
ArgumentException timeout パラメータに指定された値が無効です。
MessageQueueException タイムアウトの時間が経過しました。
InvalidEnumArgumentException transactionType パラメータが、 MessageQueueTransactionType メンバの値ではありません。

解説

RemoveCurrenttransactionType パラメータで定義されたトランザクション コンテキストを使用して、カーソルの現在位置のメッセージを削除して返します。カーソルがキューの最後にあるときは、メソッドのこのオーバーロードは、メッセージが使用できるようになるか、 timeout パラメータによって指定される時間が経過するまで待機します。

既に、メッセージの受信に使用するスレッドに結び付けられた外部トランザクション コンテキストがある場合は、 transactionType パラメータに Automatic を指定します。メッセージを単一の内部トランザクションとして受信する場合は、 Single を指定します。トランザクション コンテキスト外部のトランザクション キューからメッセージを受信する場合は、 None を指定します。

キュー ジャーナリングを使用している場合は、メッセージを削除したときにジャーナル キューにコピーが保存されます。これは、 MessageQueue クラスの Receive メソッドと同じ動作です。

トランザクション キューを使う場合は、トランザクションをロールバックすると、 RemoveCurrent の呼び出しによって削除されたメッセージがあればキューに返されます。削除は、トランザクションがコミットされるまで取り消すことができません。

現在のメッセージを削除すると、カーソルは次のメッセージに移動します。 RemoveCurrent を呼び出した後で MoveNext を呼び出す必要はありません。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

.NET Framework セキュリティ:

参照

MessageEnumerator クラス | MessageEnumerator メンバ | System.Messaging 名前空間 | MessageEnumerator.RemoveCurrent オーバーロードの一覧 | MoveNext | Current | MessageQueueTransactionType