IInputChannel.BeginReceive Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Rozpoczyna asynchroniczną operację odbierania.
Przeciążenia
BeginReceive(AsyncCallback, Object) |
Rozpoczyna operację asynchroniczną w celu odebrania komunikatu, który ma skojarzony obiekt stanu. |
BeginReceive(TimeSpan, AsyncCallback, Object) |
Rozpoczyna operację asynchroniczną w celu otrzymania komunikatu o określonym limicie czasu i skojarzonym z nim obiekcie stanu. |
Uwagi
Użyj metody asynchronicznej BeginReceive , jeśli chcesz, aby przetwarzanie aplikacji było kontynuowane bez oczekiwania na odebranie żądania. Użyj metody synchronicznej Receive , gdy dopuszczalne jest zablokowanie bieżącego wątku do momentu odebrania komunikatu żądania lub przekroczenia interwału czasu określonego przez ten timeout
wątek. Operacja asynchroniczna jest dostępna z jawnym limitem czasu lub bez tego limitu czasu.
BeginReceive(AsyncCallback, Object)
- Źródło:
- IInputChannel.cs
- Źródło:
- IInputChannel.cs
Rozpoczyna operację asynchroniczną w celu odebrania komunikatu, który ma skojarzony obiekt stanu.
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
Parametry
- callback
- AsyncCallback
Delegat AsyncCallback , który odbiera powiadomienie o zakończeniu operacji asynchronicznej.
- state
- Object
Obiekt określony przez aplikację, który zawiera informacje o stanie skojarzone z operacją asynchroniczną.
Zwraca
Element IAsyncResult , który odwołuje się do asynchronicznego odbioru wiadomości.
Przykłady
Poniższy kod ilustruje sposób implementacji tej metody:
public IAsyncResult BeginReceive(AsyncCallback callback, object state)
{
return BeginReceive(DefaultReceiveTimeout, callback, state);
}
Uwagi
Użyj metody asynchronicznej BeginReceive , jeśli chcesz, aby przetwarzanie aplikacji było kontynuowane bez oczekiwania na odebranie żądania. Użyj metody synchronicznej Receive , gdy dopuszczalne jest zablokowanie bieżącego wątku do momentu odebrania komunikatu żądania lub przekroczenia interwału czasu określonego przez ten timeout
wątek. Operacja asynchroniczna jest dostępna z jawnym limitem czasu lub bez tego limitu czasu.
Ta metoda odbiera powiadomienie za pośrednictwem wywołania zwrotnego tożsamości programu obsługi zdarzeń dla operacji. Operacja nie zostanie ukończona, dopóki komunikat nie stanie się dostępny w kanale.
Dotyczy
BeginReceive(TimeSpan, AsyncCallback, Object)
- Źródło:
- IInputChannel.cs
- Źródło:
- IInputChannel.cs
Rozpoczyna operację asynchroniczną w celu otrzymania komunikatu o określonym limicie czasu i skojarzonym z nim obiekcie stanu.
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
Parametry
- callback
- AsyncCallback
Delegat AsyncCallback , który odbiera powiadomienie o zakończeniu operacji asynchronicznej.
- state
- Object
Obiekt określony przez aplikację, który zawiera informacje o stanie skojarzone z operacją asynchroniczną.
Zwraca
Element IAsyncResult , który odwołuje się do asynchronicznej operacji odbierania.
Wyjątki
Określony timeout
parametr zostanie przekroczony przed ukończeniem operacji.
Określony limit czasu jest mniejszy niż zero.
Przykłady
Poniższy kod ilustruje sposób implementacji tej metody:
public IAsyncResult BeginReceive(TimeSpan timeout, AsyncCallback callback, object state)
{
ReceiveAsyncResult<TChannel> result = new ReceiveAsyncResult<TChannel>(this, timeout, callback, state);
result.Begin();
return result;
}
Uwagi
Użyj metody asynchronicznej BeginReceive , jeśli chcesz, aby przetwarzanie aplikacji było kontynuowane bez oczekiwania na odebranie żądania. Użyj metody synchronicznej Receive , gdy dopuszczalne jest zablokowanie bieżącego wątku do momentu odebrania komunikatu żądania lub przekroczenia interwału czasu określonego przez ten timeout
wątek. Operacja asynchroniczna jest dostępna z jawnym limitem czasu lub bez tego limitu czasu.
Operacja nie zostanie ukończona do momentu udostępnienia komunikatu w kanale lub przekroczenia limitu czasu.
Uwagi dotyczące implementowania
Operacja zgłasza wartość TimeoutException , jeśli określona timeout
wartość zostanie przekroczona przed jej ukończeniem.