在Visual C ++中,同时调用一个函数并执行其余的程序

时间:2014-02-05 07:56:50

标签: c++ visual-c++

并行编程或线程,它应该适用于Visual C ++。

一个函数需要很长时间才能完成,因此其余的代码将不会被执行为

main()
{  
    timeconsumingcode();
    nextstep();
}

nextstep()不会发生直到timeconsumingcode()结束;

因此我希望timeconsumingcode()nextstep()同时运行

我想知道我们是如何为Visual C ++做的

2 个答案:

答案 0 :(得分:4)

在C ++ 11中,您应该能够使用std::async或者作为评论中提出的@MSalters std::thread(&timeconsumingcode).detach();。在C ++ 03上,你应该可以使用boost::thread建模。

答案 1 :(得分:2)

您可以使用C运行时函数_beginthreadex。您应该稍微更改timeconsumingcode的签名。

unsigned int __stdcall timeconsumingcode(void* pdata);
main()
{  
  _beginthreadex(NULL, 0, timeconsumingcode, NULL, 0, NULL);
  nextstep()
}

请查看MSDN - http://msdn.microsoft.com/en-us/library/kdzttdcb.aspx了解更多信息