我想在Visual 2010中创建一个C++应用程序,它包含两个线程:
我已经读过了关于线程的理论,但并不真正理解我如何使用它。有没有人可以向我展示如何在Visual 2010中简单地定义和运行这两个线程?
目前,我有下面的示例不起作用:
class Thread
{
public:
Thread();
int Start(void * arg);
protected:
int Run(void * arg);
static void * EntryPoint(void*);
virtual void Setup();
virtual void Execute(void*);
void * Arg() const {return Arg_;}
void Arg(void* a){Arg_ = a;}
private:
THREADID ThreadId_;
void * Arg_;
};
Thread::Thread() {}
int Thread::Start(void * arg)
{
Arg(arg); // store user data
int code = thread_create(Thread::EntryPoint, this, & ThreadId_);
return code;
}
int Thread::Run(void * arg)
{
Setup();
Execute( arg );
}
/*static */
void * Thread::EntryPoint(void * pthis)
{
Thread * pt = (Thread*)pthis;
pt->Run( pt->Arg() );
}
virtual void Thread::Setup()
{
// Do any setup here
}
virtual void Thread::Execute(void* arg)
{
// Your code goes here
}我也开放给好的教程或代码示例。
发布于 2011-11-27 11:52:44
如果程序未编译,则应包括http://www.MSDN.com中指定的未定义函数的标头。另外,让shure线程不是从DLL入口点(例如DllMain())启动的。
此外,您应该在启用多线程的情况下进行编译(我相信这是/MT选项)。
https://stackoverflow.com/questions/8285247
复制相似问题