ExNotifyCallback
函数从一个组件向另一个组件发出信号。有多个实例正在监听此 CB,只有正确的实例才会做出响应。响应通过单独的函数指针接口进行调用来实现:
void (*pfnResponseFunc)(void*pData, int* pDataSize)
我想发出 ExNotifyCallback,然后等待通过 pfnResponseFunc 的响应。
函数中发生的代码流程:
// Send message to listeners:
ExNotifyCallback(myCbObject, pIn1, pIn2);
// Wait (with timeout) for pfnResponseFunc to get called...
if (responseFound)
{
// read pData that showed up in pfnResponseFunc, return success
}
else
{
// return failure
}
我希望它在同一函数中专门等待固定超时。在 Windows 中是否有典型的方法来执行此操作?
基本解决方案有两部分:
我想我通常会使用事件来实现这个目的,在多个组件之间发出信号。
然后,您的组件可以使用 WaitForSingleObject 等待事件,该事件在 MS 中有超时。
但是您在这里遗漏了很多细节。
无论如何,您可以使用多种并发模式,具体取决于您想要执行的操作,但使用事件和线程池是典型的实现方式。