IInputChannel.BeginReceive Metod

Definition

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.

Gäller för