PollUserInterrupt 方法用于查询调试主机的用户是否请求中断当前作。 例如,数据模型中的属性访问器可以调用任意代码(例如:JavaScript 方法)。 该代码可能需要任意时间。 为了使调试主机保持响应,任何可能需要任意时间的此类代码都应通过调用此方法来检查中断请求。 如果 interruptRequested 值返回为 true,则调用方应立即中止并返回E_ABORT的结果。
任何接收E_ABORT错误的数据模型 API 调用方都向外传播该错误,而不是只吞咽错误,这一点很重要。
某些主机(特别是 Windows 调试工具)可能会选择在中断挂起时发生的查询失败。 在这种情况下,许多方法调用 IDebugHost* 接口将返回E_ABORT,直到控件返回到调试主机。
语法
HRESULT PollUserInterrupt(
bool *interruptRequested
);
参数
interruptRequested
指示是否返回用户中断挂起。 如果返回的值为 true,调用方应立即停止它正在执行的作,并向外传播E_ABORT错误代码。
返回值
此方法返回 HRESULT,指示成功或失败。
言论
示例代码
// within some method...
ComPtr<IDebugHost> spHost; /* get the host*/
ComPtr<IDebugHostStatus> spStatus;
spHost.As(&spStatus);
bool isInterruptRequested;
if (spStatus != nullptr && SUCCEEDED(spStatus->PollUserInterrupt(&isInterruptRequested)) && isInterruptRequested)
{
// This is the return code to indicate a user initiated abort.
return E_ABORT;
}
要求
要求 | 价值 |
---|---|
标头 | dbgmodel.h |