zoukankan      html  css  js  c++  java
  • 关于function的一种常用用法

    关于function的一种常用用法
    void Share::InitAcrossManager()
    {
        GsMgrEvent gsMgrEvents;//保存function的结构体
        gsMgrEvents.fnSendData2Client = [this](int nChannelId, void* pData, int nLen)//lambda绑定,当然也可以用std::bind进行绑定
        {
            SendCmd2C(nChannelId, s2c_prop_opt, pData, nLen);
        };
        gsMgrEvents.fnSendData2MsByMapId = [this](int nMapId, void* pData, int nLen)
        {
            SendCmd2MsByMapId(nMapId, gs2ms_prop_mgr, pData, nLen);
        };
        gsMgrEvents.fnSendData2Ms = [this](int nChannelId, void* pData, int nLen)
        {
            SendCmd2MsByChannelId(nChannelId, gs2ms_prop_mgr, pData, nLen);
        };
        m_spPropManager->Init(gsMgrEvents);
    }
    到时PropManager模块就可以直接通过m_cEvents中的function调用share中的函数,就是一个回调过程,工作之前很少接触这种,所以每次都感到很别扭
    我认识的回调都是两个线程,当另外一个线程完成某项工作之后进行回调,
    NGP那块也是通过传递NGP Context进去的
    我刚才在想通过接口或者函数也能调用另一个模块
    但有时还必须要用function,因为function可以绑定任意一个函数公有,私有,不管哪个类的,只要是一个进程的都可以,跟接口函数没关系,这样更加灵活,而且模块更加独立,但function需要事先绑定好
    至此GS,Share这边结束了
  • 相关阅读:
    ADO.NET 数据连接查询
    弹出消息对话框类
    C# 火星文转化 算法 dictionary 的使用案例
    微软官方的SqlHelper
    jsHelper
    【VC++积累】之六、MFC简要剖析
    C# 统计文章中字符的种类和个数 哈希表和字典的使用
    C# NetHelper
    C# XML操作类 XmlHelper
    【VS++积累】之七、黑客编程之匿名管道
  • 原文地址:https://www.cnblogs.com/zzyoucan/p/4175634.html
Copyright © 2011-2022 走看看