我有一个经典的异步消息调度问题.本质上,我需要异步调度消息,然后在调度完成时捕获消息响应.问题是,我似乎无法弄清楚如何使任何一个请求周期自我过期和短路.
以下是我目前使用的模式示例:
为invokation定义的委托
private delegate IResponse MessagedispatchDelegate(IRequest request);
使用回调发送消息
var dispatcher = new MessagedispatchDelegate(dispatchMessage); dispatcher.BeginInvoke(requestMessage,dispatchMessageCallback,null);
发送消息
private IResponse dispatchMessage(IRequest request) { //dispatch the message and throw exception if it times out }
获取调度结果作为响应或异常
private void dispatchMessageCallback(IAsyncResult ar) { //Get result from EndInvoke(r) which Could be IResponse or a Timeout Exception }
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。