C++ Boost异步线程
所以我一直在使用boost作为线程的解决方案。 我似乎遇到了一个问题,我创建的线程不让执行它们的主线程继续。 例如:C++ Boost异步线程,c++,boost,boost-thread,C++,Boost,Boost Thread,所以我一直在使用boost作为线程的解决方案。 我似乎遇到了一个问题,我创建的线程不让执行它们的主线程继续。 例如: intmain(){ 而(1){ 语音侦听;//创建语音对象 boost::threadspeech_thd(boost::bind(&speech::Run,&listen)); 语音连接(); std::cout不要在您刚刚创建的线程上调用join-join专门在主线程中等待,直到speech\u thd终止,请参见此处:线程是否会在不调用join()的情况下开始执行?另外,
intmain(){
而(1){
语音侦听;//创建语音对象
boost::threadspeech_thd(boost::bind(&speech::Run,&listen));
语音连接();
std::cout不要在您刚刚创建的线程上调用join
-join
专门在主线程中等待,直到speech\u thd
终止,请参见此处:线程是否会在不调用join()的情况下开始执行?另外,如果我按如下方式调用参数,这也会起作用:boost::thread(&listen::RecordMethod,this);?[注意,这是在对象listen本身内调用的。是的,线程在构造后立即开始。我不确定您的第二个问题-也许您应该问另一个问题。此代码正确吗?下一行的语音侦听;
和侦听
是同一个对象吗(这是打字错误吗?),还是它们是不同的对象?抱歉,这是一个大写字母问题。我只是用它来演示一下。
int main(){
while(1){
speech listen; //create speech object
boost::thread speech_thd(boost::bind(&speech::Run,&listen));
speech_thd.join();
std::cout<<"test\n";
//Some sleep call here
}