IInputChannel.BeginReceive 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.
Påbörjar en asynkron mottagningsåtgärd.
Överlagringar
| Name | Description |
|---|---|
| BeginReceive(AsyncCallback, Object) |
Påbörjar en asynkron åtgärd för att ta emot ett meddelande som har ett tillståndsobjekt associerat med det. |
| BeginReceive(TimeSpan, AsyncCallback, Object) |
Påbörjar en asynkron åtgärd för att ta emot ett meddelande som har ett angivet timeout- och tillståndsobjekt som är associerat med det. |
Kommentarer
Använd den asynkrona BeginReceive metoden när du vill att programbearbetningen ska fortsätta utan att vänta på att begäran ska tas emot. Använd den synkrona Receive metoden när det är acceptabelt att den aktuella tråden blockeras tills begärandemeddelandet tas emot eller det tidsintervall som angetts av timeout har överskridits. Den asynkrona åtgärden är tillgänglig med eller utan en explicit tidsgräns.
BeginReceive(AsyncCallback, Object)
- Källa:
- IInputChannel.cs
- Källa:
- IInputChannel.cs
- Källa:
- IInputChannel.cs
Påbörjar en asynkron åtgärd för att ta emot ett meddelande som har ett tillståndsobjekt associerat med det.
public:
IAsyncResult ^ BeginReceive(AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginReceive(AsyncCallback callback, object state);
abstract member BeginReceive : AsyncCallback * obj -> IAsyncResult
Public Function BeginReceive (callback As AsyncCallback, state As Object) As IAsyncResult
Parametrar
- callback
- AsyncCallback
Ombudet AsyncCallback som tar emot meddelandet om att den asynkrona åtgärden har slutförts.
- state
- Object
Ett objekt som anges av programmet och som innehåller tillståndsinformation som är associerad med den asynkrona åtgärden.
Returer
Det IAsyncResult som refererar till den asynkrona meddelandemottagningen.
Exempel
Följande kod visar hur du implementerar den här metoden:
public IAsyncResult BeginReceive(AsyncCallback callback, object state)
{
return BeginReceive(DefaultReceiveTimeout, callback, state);
}
Kommentarer
Använd den asynkrona BeginReceive metoden när du vill att programbearbetningen ska fortsätta utan att vänta på att begäran ska tas emot. Använd den synkrona Receive metoden när det är acceptabelt att den aktuella tråden blockeras tills begärandemeddelandet tas emot eller det tidsintervall som angetts av timeout har överskridits. Den asynkrona åtgärden är tillgänglig med eller utan en explicit tidsgräns.
Den här metoden tar emot meddelanden via ett återanrop om identiteten för händelsehanteraren för åtgärden. Åtgärden är inte slutförd förrän ett meddelande blir tillgängligt i kanalen.
Gäller för
BeginReceive(TimeSpan, AsyncCallback, Object)
- Källa:
- IInputChannel.cs
- Källa:
- IInputChannel.cs
- Källa:
- IInputChannel.cs
Påbörjar en asynkron åtgärd för att ta emot ett meddelande som har ett angivet timeout- och tillståndsobjekt som är associerat med det.
public:
IAsyncResult ^ BeginReceive(TimeSpan timeout, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginReceive(TimeSpan timeout, AsyncCallback callback, object state);
abstract member BeginReceive : TimeSpan * AsyncCallback * obj -> IAsyncResult
Public Function BeginReceive (timeout As TimeSpan, callback As AsyncCallback, state As Object) As IAsyncResult
Parametrar
- timeout
- TimeSpan
Det TimeSpan som anger tidsintervallet för att vänta tills ett meddelande blir tillgängligt.
- callback
- AsyncCallback
Ombudet AsyncCallback som tar emot meddelandet om att den asynkrona åtgärden har slutförts.
- state
- Object
Ett objekt som anges av programmet och som innehåller tillståndsinformation som är associerad med den asynkrona åtgärden.
Returer
Det IAsyncResult som refererar till den asynkrona mottagningsåtgärden.
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 IAsyncResult BeginReceive(TimeSpan timeout, AsyncCallback callback, object state)
{
ReceiveAsyncResult<TChannel> result = new ReceiveAsyncResult<TChannel>(this, timeout, callback, state);
result.Begin();
return result;
}
Kommentarer
Använd den asynkrona BeginReceive metoden när du vill att programbearbetningen ska fortsätta utan att vänta på att begäran ska tas emot. Använd den synkrona Receive metoden när det är acceptabelt att den aktuella tråden blockeras tills begärandemeddelandet tas emot eller det tidsintervall som angetts av timeout har överskridits. Den asynkrona åtgärden är tillgänglig med eller utan en explicit tidsgräns.
Åtgärden är inte slutförd förrän antingen ett meddelande blir tillgängligt i kanalen eller tidsgränsen inträffar.
Anteckningar till implementerare
Åtgärden genererar en TimeoutException om den angivna timeout överskrids innan den slutförs.