IInputChannel.TryReceive(TimeSpan, Message) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Pokusí se přijmout zprávu v zadaném časovém intervalu.
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
Parametry
- timeout
- TimeSpan
Vrácená IAsyncResult voláním jedné z BeginReceive metod.
Návraty
true
pokud je zpráva přijata před překročením timeout
hodnoty ; v opačném případě false
.
Výjimky
Před dokončením operace dojde k překročení zadané timeout
hodnoty.
Zadaný časový limit je menší než nula.
Příklady
Následující kód ukazuje, jak tuto metodu implementovat:
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;
}
Poznámky
Pokud se chystáte vyřešit vypršení časových limitů a ne jen znovu vyvolat nebo zabalit TimeoutException, měli byste místo Receivevolání volat TryReceive(TimeSpan, Message) .
Pokud nebudete zpracovávat vypršení časových limitů speciálně, stačí zavolat Receive, jinak ztratíte informace o chybě.