0

我想在 C 中制作自己的消息调度程序...例如,我想向 MyButton 或 MyWindow 结构发送消息。这些结构有自己的处理程序。

有高手有什么建议吗?

PS:用于嵌入式应用(使用微控制器)

PPS:多亏了肖恩——这就是我所需要的。我对肖恩建议的简单解释:

typedef void (*MyHandler)(size_t param);
MyHandler Handlers[32];
void RegisterHandlers(size_t id, MyHandler handler) {
  Handlers[id] = handler;   
}
void SendMessage(size_t id, size_t param) {
  Handlers[id](param);  
}
4

1 回答 1

0

为了实现这一点,我将执行以下操作:

为触发的事件设计一个线程安全的容器,一个队列。

然后我会设计一个系统,通过哈希表或类似的其他机制将事件 id、字符串或整数与函数联系起来。

完成这两个块之后,您只需要一种方法来使用函数指针注册事件 id,然后只需使用一种通用方法将参数发送到函数,这几乎就是所有需要使用消息调度程序完成的事情。您将消息推送到队列,然后从队列中弹出内容并对消息中包含的任何内容做出反应。

于 2012-10-15T05:49:21.373 回答