【发布时间】:2020-06-11 09:27:14
【问题描述】:
我有一个名为 WiFiControlImplementation 的子类,它是另一个名为 WifiSniffer
的类的子类WiFiControlImplementation 包含一个公共方法:
class WiFiControlImplementation : public WifiSniffer {
public:
WiFiControlImplementation(){};
void startControlProcess (void);
private:
bool callback (void) override;
它从 WifiSniffer 继承了两个函数:
class WifiSniffer{
public:
WifiSniffer(){};
void run (void);
void runChannelHop (int hopscale);
private:
virtual bool callback (void);
函数 startControlProcess 必须在不同的线程中运行两个继承的函数:
void WiFiControlImplementation::startControlProcess(){
std::thread channelhop (&WiFiControlImplementation::runChannelHop,this,3);
std::thread runner (&WiFiControlImplementation::run,this);
}
现在如果我想在另一个主文件(例如:main.cpp)中运行对象怎么办? 我这样做吗:
#include "wifi_ControlImplementation.h"
int main(int argc, char **argv){
WiFiControlImplementation job;
job.startControlProcess();
while(1){}; // For not stopping the main thread so that the object thread can still run ?
}
如果我想像这样运行同一个类的多个对象,我应该怎么做:
#include "wifi_ControlImplementation.h"
int main(int argc, char **argv){
WiFiControlImplementation job;
job.startControlProcess();
WiFiControlImplementation job2;
job2.startControlProcess();
WiFiControlImplementation job3;
job3.startControlProcess();
while(1){};
}
【问题讨论】:
-
嗨serialback,欢迎来到StackOverflow!您是否尝试过运行您发布的代码?如果是这样,会发生什么?
-
while(1){};不,你不应该那样做。这是什么意思? -
当我在没有 while(1) 的情况下运行程序时,程序退出时终止“在没有活动异常中止的情况下调用”问题,因为主函数正在调用一个对象,该对象的函数只运行线程,所以主程序只是运行线程并退出,如果主程序退出,线程将被杀死,对吗?我应该如何解决它
标签: c++ multithreading c++11