IInputChannel.TryReceive(TimeSpan, Message) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
指定した時間内にメッセージの受信を試みます。
public:
bool TryReceive(TimeSpan timeout, [Runtime::InteropServices::Out] System::ServiceModel::Channels::Message ^ % message);
public bool TryReceive(TimeSpan timeout, out System.ServiceModel.Channels.Message message);
abstract member TryReceive : TimeSpan * Message -> bool
Public Function TryReceive (timeout As TimeSpan, ByRef message As Message) As Boolean
パラメーター
- timeout
- TimeSpan
IAsyncResult メソッドの 1 つを呼び出すと返されるBeginReceive。
返品
true
timeoutを超える前にメッセージを受信した場合は ゚。それ以外の場合はfalse。
例外
指定した timeout を超えると、操作が完了します。
指定されたタイムアウトが 0 未満です。
例
次のコードは、このメソッドを実装する方法を示しています。
public bool TryReceive(TimeSpan timeout, out Message message)
{
bool result;
while (true)
{
result = this.InnerChannel.TryReceive(timeout, out message);
if (ProcessReceivedMessage(ref message))
{
break;
}
}
return result;
}
注釈
TimeoutExceptionを再スローまたはラップするだけでなく、タイムアウトを処理する場合は、TryReceive(TimeSpan, Message)ではなくReceiveを呼び出す必要があります。
タイムアウトを特別に扱わない場合は、 Receiveを呼び出すだけです。そうしないと、エラー情報が失われます。