ACE 线程管理器无法调用函数
ACE thread manager can not invoke function
我想用ACE_thread_manager创建一个线程,调试的时候没有报错。但结果不对。该功能不起作用;代码如下:
#include "ace/OS.h"
#include "ace/Log_Msg.h"
#include "ace/Thread_Manager.h"
#include <iostream>
void thread_start(void* arg)
{
std::cout << "Running thread..\n";
}
int main(int argc, char *argv[])
{
ACE_Thread_Manager::instance()->spawn(ACE_THR_FUNC(thread_start), 0, THR_NEW_LWP);
return 0;
}
这个演示应该打印 "Running thread.." ,但是当我调试它时,它什么也没打印。这些中文意思是"Please press any key to continue" .
您必须在主线程中等待,直到您的工作线程完成。正如您所说,您必须在 main.
中的 return 之前添加以下行
ACE_Thread_Manager::instance()->wait();
我想用ACE_thread_manager创建一个线程,调试的时候没有报错。但结果不对。该功能不起作用;代码如下:
#include "ace/OS.h"
#include "ace/Log_Msg.h"
#include "ace/Thread_Manager.h"
#include <iostream>
void thread_start(void* arg)
{
std::cout << "Running thread..\n";
}
int main(int argc, char *argv[])
{
ACE_Thread_Manager::instance()->spawn(ACE_THR_FUNC(thread_start), 0, THR_NEW_LWP);
return 0;
}
您必须在主线程中等待,直到您的工作线程完成。正如您所说,您必须在 main.
中的 return 之前添加以下行ACE_Thread_Manager::instance()->wait();