IObjectControl::D eactivate 方法 (comsvcs.h)

使 COM+ 对象在回收或销毁之前执行所需的清理。

每当停用对象时,COM+ 运行时环境将调用此方法。 不要对此方法中的同一活动中的对象进行任何方法调用。

语法

void Deactivate();

返回值

备注

每当支持 IObjectControl 接口的对象被停用时,COM+ 运行时环境将调用 Deactivate 方法。 当对象从名为 SetCompleteSetAbort 的方法返回时,当提交或中止执行它的事务时,或者当对对象保留引用的最后一个客户端释放其引用时,对象将被停用。

如果组件支持回收 (从 CanBePooled 方法) 返回 TRUE,则必须使用 Deactivate 方法将对象的状态重置为 Activate 方法预期找到它的状态。 还可以使用 Deactivate 方法释放对象的上下文或执行其他特定于上下文的清理。 即使对象支持回收,也有利于在其 Deactivate 方法中释放某些可重用资源。 例如,ODBC 提供自己的连接池。 与将数据库连接绑定到对象池中的特定对象相比,在常规连接池中将数据库连接共用到其他对象可以使用该连接池的效率更高。

COM+ 明确禁止在停用方法在其析构函数) 返回 (后调用公开 IObjectControl 的对象。 此类调用将导致RPC_E_DISCONNECTED错误。 例如,如果对象已传出对自身的引用,然后在 Deactivate 返回后重新调用对象,则会导致断开连接的错误。

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 comsvcs.h

另请参阅

IObjectControl