nodejs c++ uv_async_t发送消息消息结构区分类型同时携带data数据数据是任意结构体取得时候进行转换
在使用 uv_async_t 发送消息时,可以通过定义一个结构体来区分不同类型的消息,并在结构体中携带相应的数据:
typedef struct {
int type; // 消息类型
void* data; // 数据指针
} Message;
在发送消息时,可以将相应的数据结构填充到 Message 中,再通过 uv_async_send 函数发送:
Message msg;
msg.type = MESSAGE_TYPE_XXX;
msg.data = (void*) &data; // data 是任意结构体
uv_async_send(async_handle, (void*) &msg);
在接收消息时,可以先将传入的参数转换为 Message 结构体,再根据类型进行相应的处理:
void async_callback(uv_async_t* handle, int status, void* data) {
Message* msg = (Message*) data;
switch (msg->type) {
case MESSAGE_TYPE_XXX:
// 处理类型为 MESSAGE_TYPE_XXX 的消息
Data* data = (Data*) msg->data;
// 进行相应的操作
break;
case MESSAGE_TYPE_YYY:
// 处理类型为 MESSAGE_TYPE_YYY 的消息
...
break;
default:
break;
}
}
``
原文地址: https://www.cveoy.top/t/topic/fJVk 著作权归作者所有。请勿转载和采集!