MessageEnumerator.RemoveCurrent メソッド (TimeSpan, MessageQueueTransaction)
トランザクション キューから現在のメッセージを削除し、そのメッセージを呼び出し元アプリケーションに返します。削除するメッセージがある場合、メソッドはすぐにメッセージを返します。削除するメッセージがない場合、メソッドは新しいメッセージが到達するまで指定のタイムアウト時間だけ待機します。
Overloads Public Function RemoveCurrent( _
ByVal timeout As TimeSpan, _ ByVal transaction As MessageQueueTransaction _) As Message
[C#]
public Message RemoveCurrent(TimeSpantimeout,MessageQueueTransactiontransaction);
[C++]
public: Message* RemoveCurrent(TimeSpantimeout,MessageQueueTransaction* transaction);
[JScript]
public function RemoveCurrent(
timeout : TimeSpan,transaction : MessageQueueTransaction) : Message;
パラメータ
- timeout
削除するメッセージを待機する時間間隔。 - transaction
メッセージのトランザクション コンテキストを指定する MessageQueueTransaction オブジェクト。
戻り値
キューで利用できる最初のメッセージを参照する Message 。
例外
例外の種類 | 条件 |
---|---|
ArgumentException | timeout パラメータに指定された値が無効です。 |
ArgumentNullException | transaction パラメータが null 参照 (Visual Basic では Nothing) です。 |
MessageQueueException | タイムアウトの時間が経過しました。 |
解説
RemoveCurrent は、カーソルの現在の位置にあるメッセージを削除し、返します。カーソルがキューの最後にあるときは、メソッドのこのオーバーロードは、メッセージが使用できるようになるか、 timeout パラメータによって指定される時間が経過するまで待機します。
トランザクション キューを使う場合は、トランザクションをロールバックすると、 RemoveCurrent の呼び出しによって削除されたメッセージがあればキューに返されます。削除は、トランザクションがコミットされるまで取り消すことができません。
キュー ジャーナリングを使用している場合は、メッセージを削除したときにジャーナル キューにコピーが保存されます。これは、 MessageQueue クラスの Receive メソッドと同じ動作です。
現在のメッセージを削除すると、カーソルは次のメッセージに移動します。 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 | MessageQueueTransaction