Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows C++;具有设计含义的委托 我有一个多线程C++窗口设计问题。假设我有一个C++类,如下:_C++_Multithreading - Fatal编程技术网

Windows C++;具有设计含义的委托 我有一个多线程C++窗口设计问题。假设我有一个C++类,如下:

Windows C++;具有设计含义的委托 我有一个多线程C++窗口设计问题。假设我有一个C++类,如下:,c++,multithreading,C++,Multithreading,classccamera\u AxisNew:public CCamera\u IPBase64假设在基类CCamera\u IPBase64中,实现了PTZThreadProc(…),我从队列中读取命令,并仅通过其中一个异步发送PTZ命令 对象指针间接地,IPTZControl->SetProperty(..)其中对象指针IPTZControl=new CCamera\u AxisNew或其他类似构造函数或 直接通过this->SetProperty() 方法PTZThreadProc(..)

classccamera\u AxisNew:public CCamera\u IPBase64
假设在基类CCamera\u IPBase64中,实现了
PTZThreadProc(…)
,我从队列中读取命令,并仅通过其中一个异步发送PTZ命令

  • 对象指针间接地,
    IPTZControl->SetProperty(..)
    其中对象指针
    IPTZControl=new CCamera\u AxisNew
    或其他类似构造函数或
  • 直接通过
    this->SetProperty()

    方法
    PTZThreadProc(..)
    在单独的线程上生成

  • 另外,在类
    CCamera_IPBase64
    中,我可以通过同步发送非PTZ命令,绕过在单独线程上运行的
    PTZThreadProc(..)

  • 对象指针间接地,
    IPTZControl->WriteCamera(…)
    ,或
  • 直接通过
    this->WriteCommand(..)
  • 客户端程序通过REST端点将请求发送到
    CCamera_IPBase64
    对象,该对象使用主线程接收请求,并仅在队列上放置PTZ命令

    我的问题是使用委派
    IPTZControl->SetProperty(..)
    还是避免委派,例如
    this->SetProperty()


    非常感谢您的帮助

    最好使用此->SetProperty()并利用继承来避免委派,因为它避免委派设计模式所需的额外冗余代码

    请格式化您的问题。@n.m.您能告诉我如何在底部灰色区域格式化我的问题吗。非常感谢。单击编辑,选择代码,然后单击{}代码格式按钮,或者在每行缩进四个额外的空格。然后从最后一行中删除代码格式。然后读这本书help@Sami库莫宁,谢谢你的评论。我只是尝试用四个额外的空格缩进每一行,并从最后一行中删除代码格式。