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 メソッドへの呼び出しで返された BeginReceive。
戻り値
timeout
が経過する前にメッセージを受信した場合は true
、それ以外の場合は 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 を呼び出します。そうしないと、エラー情報が失われます。
適用対象
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET