我有一个调用 COM 接口(interface)的各种 API 的线程。现在我想从另一个线程调用这些函数。你能告诉我如何实现这一目标吗? 如何实现这两个线程之间的通信?如果我定义了这两个线程通用的消息队列类型的数据结构,那么我该如何定义通用数据结构,因为每个 COM API 的参数都不同。
提前致谢
最佳答案
典型的方法是使用回调。您通过指针传递数据。您可以使用多态性来覆盖基类从队列中弹出时调用的方法。基调用函数 x,你在派生类中覆盖函数 x 来实现你想要的。
另一种方法是使用普通的旧回调。您将函数的地址连同您需要的任何数据一起传递到队列中,并干净利落地包装在一个结构中。所有回调必须具有相同的签名,因此您可能需要将数据转换为 void。
关于用于两个线程之间通信的C++多线程数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4100263/