IInputChannel.TryReceive(TimeSpan, Message) Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Försöker ta emot ett meddelande inom ett angivet tidsintervall.
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
Parametrar
- timeout
- TimeSpan
Returneras IAsyncResult av ett anrop till någon av BeginReceive metoderna.
Returer
true om ett meddelande tas emot innan har timeout överskridits, annars false.
Undantag
Den angivna timeout överskrids innan åtgärden har slutförts.
Den angivna tidsgränsen är mindre än noll.
Exempel
Följande kod visar hur du implementerar den här metoden:
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;
}
Kommentarer
Om du ska hantera timeouter och inte bara kasta om eller omsluta TimeoutExceptionbör du anropa TryReceive(TimeSpan, Message) i stället för Receive.
Om du inte kommer att behandla timeouter speciellt kan du bara anropa Receive, annars förlorar du felinformation.