c++ 异步处理

来源:互联网 发布:极速淘宝秒杀 编辑:程序博客网 时间:2024/06/10 01:37

c++ 异步处理

不久前自己参与了一个项目,其中有一个模块就是数据变化上送需要对tableview的数据进行更新。数据何时变化我并不知道,因此需要用到回调函数,当有数据变化的时候,调用回调函数执行数据变化上送的处理。
数据结构如下:

    typedef struct user_callback_fun    {        /* 变化数据上送处理 */        int (*U_dataChangeFun)(RtuInfo *rtuInfo,int num);    } UserCallbackFun;    typedef struct user_data_init    {        int num;        IpPort pIpPort[MAX_RTU_NUM];        UserCallbackFun pUserCallback;    }UserDataInit;

在程序里需要对回调函数进行注册,如下代码:

static int DataChange::UserDataChangeFunc(RtuInfo *rtuInfo, int num);//回调函数的声明 uDataInit.pUserCallback.U_dataChangeFun = DataChange::UserDataChangeFunc;

注册好回调函数之后,当有数据变化时,利用UserDataInit结构体里的函数指针U_dataChangeFun调用回调函数即可。
异步处理需要考虑到数据的一致性,在特定的场合下需要运用到锁的技术。