IInputChannel.BeginReceive 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
开始异步接收操作。
重载
BeginReceive(AsyncCallback, Object) |
开始用于接收消息的异步操作,该操作具有关联的状态对象。 |
BeginReceive(TimeSpan, AsyncCallback, Object) |
开始用于接收消息的异步操作,该操作具有指定的超时值和状态对象与之关联。 |
注解
如果需要应用程序处理继续进行而不等待接收请求,则使用异步 BeginReceive 方法。 如果当前线程在收到请求消息或超出 Receive 指定的时间间隔之前可以被阻塞,则使用同步 timeout
方法。 在有无显式超时的情况下,异步操作都可用。
BeginReceive(AsyncCallback, Object)
- Source:
- IInputChannel.cs
开始用于接收消息的异步操作,该操作具有关联的状态对象。
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
参数
- callback
- AsyncCallback
接收异步操作完成通知的 AsyncCallback 委托。
- state
- Object
一个由应用程序指定的对象,包含与异步操作相关联的状态信息。
返回
引用异步消息接收的 IAsyncResult。
示例
下面的代码演示如何实现此方法:
public IAsyncResult BeginReceive(AsyncCallback callback, object state)
{
return BeginReceive(DefaultReceiveTimeout, callback, state);
}
注解
如果需要应用程序处理继续进行而不等待接收请求,则使用异步 BeginReceive 方法。 如果当前线程在收到请求消息或超出 Receive 指定的时间间隔之前可以被阻塞,则使用同步 timeout
方法。 在有无显式超时的情况下,异步操作都可用。
此方法通过回调为操作接收事件处理程序标识的通知。 直到通道中出现消息时,才完成此操作。
适用于
BeginReceive(TimeSpan, AsyncCallback, Object)
- Source:
- IInputChannel.cs
开始用于接收消息的异步操作,该操作具有指定的超时值和状态对象与之关联。
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
参数
- callback
- AsyncCallback
接收异步操作完成通知的 AsyncCallback 委托。
- state
- Object
一个由应用程序指定的对象,包含与异步操作相关联的状态信息。
返回
引用异步接收操作的 IAsyncResult。
例外
在操作完成前超出指定的 timeout
。
指定的超时小于零。
示例
下面的代码演示如何实现此方法:
public IAsyncResult BeginReceive(TimeSpan timeout, AsyncCallback callback, object state)
{
ReceiveAsyncResult<TChannel> result = new ReceiveAsyncResult<TChannel>(this, timeout, callback, state);
result.Begin();
return result;
}
注解
如果需要应用程序处理继续进行而不等待接收请求,则使用异步 BeginReceive 方法。 如果当前线程在收到请求消息或超出 Receive 指定的时间间隔之前可以被阻塞,则使用同步 timeout
方法。 在有无显式超时的情况下,异步操作都可用。
直到通道中出现消息时或发生超时时才完成操作。
实施者说明
如果在操作完成前超出指定的 TimeoutException,该操作将引发 timeout
。