IInputChannel.BeginTryReceive(TimeSpan, AsyncCallback, Object) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
지정된 시간 제한이 있는 메시지와 그에 연결된 상태 개체를 수신하기 위해 비동기 작업을 시작합니다.
public:
IAsyncResult ^ BeginTryReceive(TimeSpan timeout, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginTryReceive (TimeSpan timeout, AsyncCallback callback, object state);
abstract member BeginTryReceive : TimeSpan * AsyncCallback * obj -> IAsyncResult
Public Function BeginTryReceive (timeout As TimeSpan, callback As AsyncCallback, state As Object) As IAsyncResult
매개 변수
- callback
- AsyncCallback
비동기 작업 완료에 대한 알림을 수신하는 AsyncCallback 대리자입니다.
- state
- Object
애플리케이션에서 지정하는 개체로, 비동기 작업과 연결된 상태 정보를 포함합니다.
반환
비동기 수신 작업을 참조하는 IAsyncResult입니다.
예외
작업을 완료하기 전에 지정된 timeout
이 초과된 경우
지정된 시간 제한이 0보다 작은 경우
예제
다음 코드에서는 이 메서드를 구현하는 방법을 보여 줍니다.
public IAsyncResult BeginTryReceive(TimeSpan timeout, AsyncCallback callback, object state)
{
TryReceiveAsyncResult<TChannel> result = new TryReceiveAsyncResult<TChannel>(this, timeout, callback, state);
result.Begin();
return result;
}
설명
대기하지 않고 애플리케이션 처리를 계속하려는 경우 비동기 BeginTryReceive(TimeSpan, AsyncCallback, Object) 메서드를 사용합니다. 요청 메시지에 회신하는 동안 또는 시간 제한 간격을 초과할 때까지 현재 스레드가 차단될 수 있는 경우 동기 TryReceive(TimeSpan, Message) 메서드를 사용합니다.
채널에서 메시지를 사용할 수 있게 되거나 시간 제한이 발생할 때까지 작업이 완료되지 않습니다.
시간 제한을 처리하고 를 다시 throw하거나 래핑 TimeoutException하는 것이 아니라 대신 를 호출 BeginTryReceive(TimeSpan, AsyncCallback, Object)BeginReceive해야 합니다.
시간 제한을 특별히 처리하지 않으면 를 호출 BeginReceive하면 됩니다. 그렇지 않으면 오류 정보가 손실됩니다.
구현자 참고
지정한 timeout
를 초과하면 작업이 에서 EndTryReceive(IAsyncResult, Message) 를 반환 false
합니다.
적용 대상
.NET