并行编程或线程,它应该适用于Visual C ++。
一个函数需要很长时间才能完成,因此其余的代码将不会被执行为
main()
{
timeconsumingcode();
nextstep();
}
nextstep()
不会发生直到timeconsumingcode()结束;
因此我希望timeconsumingcode()
和nextstep()
同时运行
我想知道我们是如何为Visual C ++做的
答案 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了解更多信息