次の方法で共有


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