![]() |
1
1
您没有定义一个通用的数据结构。每个不同的函数签名都有不同的数据结构。这些结构之间唯一的共同点是函数的标识符。在线程中,你会有巨大的开关(或STD::MAP),它将把函数标识符转换为函数本身。之后你就知道如何解释结构的其余部分了。结构应该有POD语义。 |
![]() |
2
2
典型的方法是使用回调。通过指针传递数据。您可以使用多态性来重写当您将基类从队列中弹出时调用的方法。基调用函数x,您可以重写派生类中的函数x来实现您想要的。 另一种方法是使用普通的旧回调。将函数的地址连同所需的任何数据一起传递到队列中,并将其完全封装在结构中。所有回调都必须具有相同的签名,因此您可能需要将数据强制转换为void。 |
![]() |
3
1
如果每个线程作为
single-threaded apartment
然后,您可以从远程线程调用所需的API,方法是将其接口指针作为
您也可以使用 Global Interface Table ,取决于应用程序的线程模型。这是最简单的方法。 |
![]() |
Denyk · ZeroMQ操作抛出EXC:[当前状态下无法完成操作] 6 年前 |
![]() |
Shubham Mishra · 执行多个芹菜工人以使用唯一队列 7 年前 |
![]() |
Tensho · 如何在RabbitMQ中发布数据库之间的数据更改? 7 年前 |
![]() |
George · MDB部署成功:然后甚至不会写入系统。出来为什么? 7 年前 |
![]() |
Nayeem · 使用JMS中的CCDT文件连接到IBM MQ 7 年前 |