首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Visual 2010中定义线程

在Visual 2010中定义线程
EN

Stack Overflow用户
提问于 2011-11-27 11:33:58
回答 1查看 1.5K关注 0票数 0

我想在Visual 2010中创建一个C++应用程序,它包含两个线程:

  1. 从extern文件
  2. 中读取数据到extern文件

我已经读过了关于线程的理论,但并不真正理解我如何使用它。有没有人可以向我展示如何在Visual 2010中简单地定义和运行这两个线程?

目前,我有下面的示例不起作用:

代码语言:javascript
复制
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
}

我也开放给好的教程或代码示例。

EN

回答 1

Stack Overflow用户

发布于 2011-11-27 11:52:44

如果程序未编译,则应包括http://www.MSDN.com中指定的未定义函数的标头。另外,让shure线程不是从DLL入口点(例如DllMain())启动的。

此外,您应该在启用多线程的情况下进行编译(我相信这是/MT选项)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8285247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档