C++ 我想在类中创建一个线程 然后让线程函数一直执行 就像timer一样间隔一段时间执行不知道怎么弄
#include<windows.h>#include<iostream>#include<process.h>usingnamespacestd;classA{publ...
#include <windows.h>
#include <iostream>
#include <process.h>
using namespace std;
class A
{
public:
A()
{
_beginthread(Agent, 0, (void*)this);
}
void run()
{
cout << "Program is running..." << endl;
}
private:
static void Agent(void *p)
{
A* a = (A*)p;
a->run();
}
};
int main()
{
A a;
}
类似这样的 展开
#include <iostream>
#include <process.h>
using namespace std;
class A
{
public:
A()
{
_beginthread(Agent, 0, (void*)this);
}
void run()
{
cout << "Program is running..." << endl;
}
private:
static void Agent(void *p)
{
A* a = (A*)p;
a->run();
}
};
int main()
{
A a;
}
类似这样的 展开
展开全部
你上面的代码框架已经符合你的需求了。只是Agent那里稍微改一下,如果你能看懂上面的代码你完全自己有能力写出来
static void Agent(void *p)
{
A* a = (A*)p;
while(1)
{
a->run();
sleep(1);//休眠1秒
}
}
static void Agent(void *p)
{
A* a = (A*)p;
while(1)
{
a->run();
sleep(1);//休眠1秒
}
}
追问
这个方法用过了 不行啊
追答
如果真说问题的话,在你的main函数,你这个函数直接退出了,所以线程没有机会进入到线程函数里,别让主函数退出,你的模型就OK了。
int main()
{
A a;
wile(1)
;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询