2012-08-29 7 views
2

나는 사람이 나를 도울 수있는 (그리고 영어는 내가 어떤 문법이나 맞춤법 실수를 사전에 미안 해요, 그래서 내 모국어가 아닌) 희망 CPP 프로젝트 (창)에 명령 프로젝트 코딩 중입니다. 몇 가지 명령을 내릴 필요가 있습니다. 더 구체적으로 : 나는 2 세트의 명령을 가지고있다. (세트 A와 세트 B라고하자.) - 세트 A를 실행하고, 특정 밀리 세컨드 (세트 A에서 계산)를 기다린 다음, 세트 B를 실행해야한다. 그것들은 세트들 사이에서 수면 (시간) 명령을 사용한다.타이밍

이제는 아무 것도하지 않고 A와 B 사이의 시간에 루프에서 실행될 다른 명령 집합 (Set C)을 통합해야합니다. 즉, 프로그램이 유휴 상태 (지정된 밀리 초를 기다리는 중)가 아니라 C 설정을 반복해야합니다 (예 : ). catch는 그 것이기 때문에 이되고 은 정확히과 같습니다. 유휴 시간에 기다렸다.

어떻게 스레드를 사용하지 않고이 작업을 수행 할 수 있습니까? (그리고 일반적으로 가능한 한 간단하게 유지하십시오.)

+0

미안하지만 어쩌면 당신이 할 수있는 유일한 방법은 스레드를 사용하는 것입니다. –

+0

정말입니까? C++에서 루프 시간을 줄이는 방법은 없습니다 (밀리 세컨드까지)? – TeaHoney

답변

1

C의 명령 세트에 대한 "작업 시간"은 알 것 같습니다. 그리고 C는 대기 시간이 끝나면 끝날 수있는 루프입니다.

이 경우 대기 시간을 카운트 다운하려면 performance counter을 사용하는 것이 좋습니다. 계산 된 내용과 C에서 소개 된 오버 헤드가 무엇인지에 따라 얻을 수있는 정확도는 마이크로 초 범위가 될 수 있습니다.

의사 코드 :

Delay = 1000 
Do A 
CounterBegin = GetCounter() 
// and now the C loop 
while ((GetCounter() - CounterBegin) < Delay) { 
    Do C 
} 
Do B 

참고 : 카운터 값은 카운터 주파수를 사용하여 시간에 변환 할 수있다. 자세한 내용은 위의 링크를 참조하십시오.

+0

감사합니다! 그것은 내가 필요한 것입니다! (= – TeaHoney