2026/3/31 20:14:38
网站建设
项目流程
企业网站翻译,国际新闻最新消息今天2024年,关键词app,百度关键词排名代发COM+ 异步方法调用全解析
1. 异步方法调用概述 在传统的COM+模型中,当客户端应用程序调用对象上的方法时,客户端线程会被阻塞,直到该方法执行并返回结果。同步调用虽然是客户端常用的技术,但有时客户端希望在调用进行时执行其他工作,而不是等待调用完成。 一种实现方法是…COM+ 异步方法调用全解析1. 异步方法调用概述在传统的COM+模型中,当客户端应用程序调用对象上的方法时,客户端线程会被阻塞,直到该方法执行并返回结果。同步调用虽然是客户端常用的技术,但有时客户端希望在调用进行时执行其他工作,而不是等待调用完成。一种实现方法是客户端创建一个工作线程来进行方法调用,这样主线程就可以自由地执行其他任务,而工作线程会被阻塞直到方法调用返回。不过,若底层基础设施能提供此类服务则更佳,这能减少客户端的线程管理代码,特别是在客户端需要进行大量并发调用时。同时,基础设施还能优化底层调用,提高性能。Windows 2000的RPC层支持异步调用,COM+借助这一特性在接口方法层面支持异步调用处理。其架构使得客户端和服务器可以独立处理异步方法调用:- 客户端代码可以实现异步方法调用,而无需服务器实现任何特殊代码。COM+ MIDL编译器可以生成处理这些复杂工作的代理和存根。- 服务器代码可以异步处理调用,而无需客户端采取任何特殊操作。实际上,即使客户端进行同步方法调用,服务器也可以异步处理该方法调用,这同样得益于MIDL生成的代理和存根。2. 示例服务器组件开发为了探索COM+对异步调用的支持,我们开发一个简单的服务器组件,该组件返回两个数的和。以下是用于演示的接口定义:interface IMySum : IUnknown { HRESULT GetSum([in] long lVal1, [in] long lVal2, [out, retval] long* plSum); };