새 스레드에서 "실행"함수를 호출하려고합니다. 지금 당장은 새로운 스레드에서 "실행"을 실제로 실행하지 않는 openMP를 사용하여이 코드를 작성했습니다. 참고 : OpenMP를 사용하여 도움을 요청하지 않습니다. 이 코드는 단지 빠른 수정이었습니다. 나는 이것에 대해가는 CreateThread() 메서드를 선호 할 것이다.상속을 사용한 다중 스레딩 (C++)
vector<ICommand*>* commands;
string strInput;
// For each command...
for(vector<ICommand*>::iterator i = commands->begin(); i != commands->end(); ++i)
{
// ...if the current command we're examining is valid...
if((*i)->ContainsCommand(strInput))
{
// ...run it in a new thread and don't let ZChatInput handle it normally...
#pragma omp sections nowait
{
#pragma omp section
(*i)->Run(strInput);
#pragma omp section
bRet = false;
}
// ...and don't check any more commands.
break;
}
}
표준 및 STL을 사용하면 어떻게됩니까? 물론, 나는 작동하는 방법을 찾고 있어요 :)
아니요, 죄송합니다. 제 3 자 라이브러리에서 부끄러워하려고합니다. 이 기능이 VS2010에있는 경우 사용해 보겠습니다. 그러나 그때까지, 아직도 내가 찾고있는 것이 아닙니다. 또한 strInput을 매개 변수로 전달하는 것을 잊었습니다. –
부스트 문제는 무엇입니까? 거의 stl처럼 표준입니다. 부스트 라이브러리가 새로운 표준으로 옮겨 가고 있습니다. 부스트 스레드가 새로운 표준이되면 인상적이지 않을 것입니다. (스레드에 대한 새로운 표준이 있다는 것을 알고 있지만, 스레드가 비슷할 지 모르겠습니다. 모델) –
C++ 0x에는 boost.thread와 유사한 스레딩 기능이 있습니다. http://en.wikipedia.org/wiki/C%2B%2B0x#Threading_facilities –