【发布时间】:2012-05-14 16:08:47
【问题描述】:
我想使用队列来同步对多个独立代码块之间共享的串行端口的访问。 每个块都提供一个回调函数,在需要时,该函数将被排入队列并处理串行端口上的一个原子操作。 然后计时器会定期执行所有待处理的操作,希望不会受到干扰。
由于我对 C++/CLI 编程比较陌生,所以我能够创建一个 System::Collections::Queue 并将一些字符串排入队列;但我终其一生都无法弄清楚如何使用指向回调函数的指针(void Test())。
我用谷歌搜索了很多,但即使是最简单的例子也不适合我。所有这些代表、Boost、Marshal、gcnew 的东西现在让我有点困惑。
我正在使用 Microsoft Visual C++ 2010 Express。 希望你能帮忙!
来自德国的问候,
保罗
【问题讨论】:
-
我自己通常避免使用委托和花哨的回调,并坚持通过继承进行回调,因为这对我来说更有意义。如果您需要遍历托管/非托管层,那么在 C++/CLI 中编写一个包装器并不难,它将充当中间回调层,将调用传递给托管环境。至少我认为它比学习将代表编组到函子等更容易。
标签: function pointers c++-cli queue member