내 C++ 프로젝트에서 스레드를 지원하기 위해 boost :: thread 라이브러리 (V1.44)를 사용하고 있습니다.무제한으로 boost :: thread 일시 중지
사용자는 자신의 스레드에서 실행중인 테스트 루프의 실행을 무제한 시간 ( ) 동안 일시 중지 할 수 있어야하며 만족할 때마다 다시 시작할 수 있어야합니다.
에서 윈도우 나는 무제한 중단에 대한 정확한 값을 알고 좋은 것, 비록 아무 문제없이이 작품이
bool ContintueLoop(){
if(testLoopPaused){ //testLoopPaused can be set by the user via GUI elements
try{
boost::this_thread::interruptible_wait(2147483648); //that's very ugly,
// somebody knows the right way to pause it for a unlimited time?
return true;
}
catch(boost::thread_interrupted& e){ //when the user selects resume the
// the thread is interrupted and continues from here
testLoopPaused = false;
return true;
}
if(...) //test for other flags like endTestLoop etc.
....
}
처럼 해결했다.
나는 내 프로그램의 리눅스 버전을 구현하기 시작했다,하지만 난 컴파일러 오류를error:
interruptible_wait
is not a member ofboost::this_thread
질문 얻을 문제 에 달렸다 : 후원을 일시 정지 할 수있는 좋은 방법이 무엇 :: 스레드 (사용자가이를 재개하기로 결정 때까지) 시간 제한없이
, 당신에게 내가 부스트 : 스레드를 사용하여 임의의 지점에서 스레드를 일시 정지 할 수있는 방법을 알고 아니에요
'Suspend()'와 같은 명령이 없습니까? –
@sad_man, 아니요. 정의 된 시간 동안 스레드를 일시 중단 할 수면 기능이 있지만 일시 중단 된 스레드는 임의의 시간에 재개 될 수 있다고 생각하지 않습니다. – zitroneneis