Udostępnij za pośrednictwem


IInputChannel.BeginReceive Metoda

Definicja

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
Ź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
Ź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

timeout
TimeSpan

Określa TimeSpan interwał czasu oczekiwania na udostępnienie komunikatu.

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.

Dotyczy