繁体   English   中英

C ++-在的线程之间传递信号到不同类的函数?

[英]C++ - Passing signals between threads of to functions of different classes?

基本问题,但无法找到解决方案。 我需要.IVEify_one()由DERIVED_TWO接收,我已经在同一类中测试了代码,并且可以正常工作吗?

#include <mutex>

class BASE
{
public:
    std::mutex(mu);
    std::condition_variable condition;
};

class DERIVED_ONE:public BASE
{
public:
   auto DoStuff()->void
   {
      std::unique_lock<mutex> lock(mu);
      //Do Stuff here...
      lock.unlock();
      condition.notify_one();
   }
};

class DERIVED_TWO:public BASE
{
public:
   auto DoMoreStuff()->void
   {
     std::unique_lock<mutex> lock(mu);
     condition.wait(lock);
     //Do even more stuff...
     lock.unlock();
   }
};

旁注:我可以使用多态对象在类之间传递消息,尽管这似乎是一个麻烦的解决方案

除非您将其声明为静态,否则类的不同实例将不会共享相同的条件变量对象。 我也怀疑您是否希望他们这样做。 我将实现一个单独的消息队列类,可以根据需要将其实例化为通信通道,并在创建时传递给您其他类的实例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM