주식 시장이 열려있을 때마다 5 분마다 실행되는 프로그램이 있습니다. 한 번 실행하면 다음 함수를 입력하고, 주식 시장이 있으면 5 분이 지나면 반환됩니다. 열다.시스템 시간 유형을 폴링하는 동안 설명 할 수없는 크래시
내가 이해하지 못하는 것은 보통 18 시간에서 19 시간 정도가 지나면 sigsegv 오류를 반환하는 것입니다. 나는 그것이 어떤 추억을 쓰지 않기 때문에, 왜 시스템 시간 유형에 대해 많이 알지 못하는데, 어쩌면 그게 그럴까?
어쨌든 당신이 줄 수있는 도움은 대단히 감사하겠습니다! 미리 감사드립니다 !! 당신이 "X 초 대기"를 할 경우
void KillTimeUntilNextStockDataReleaseOnWeb()
{
SYSTEMTIME tLocalTimeNow;
cout<<"\n*****CHECKING IF RUN HAS JUST COMPLETED OR NOT*****\n";
GetLocalTime(&tLocalTimeNow);//CHECK IF A RUN HAS JUST COMPLETED. IF SO, AWAIT NEXT 5 MINUTE MARK
while((tLocalTimeNow.wMinute % 5)==0)
GetLocalTime(&tLocalTimeNow);
cout<<"\n*****AWAITING 5 MINUTE MARK TO UPDATE STOCK DATA*****\n";
GetLocalTime(&tLocalTimeNow);//LOOP THROUGH THIS SECTION, CHECKING CURRENT TIME, UNTIL 5 MINUTE UPDATE. THEN PROCEED
while((tLocalTimeNow.wMinute % 5)!=0)
GetLocalTime(&tLocalTimeNow);
cout<<"\n*****CHECKING IF MARKET IS OPEN*****\n";
//CHECK IF STOCK MARKET IS EVEN OPEN. IF NOT, REPEAT
GetLocalTime(&tLocalTimeNow);
while((tLocalTimeNow.wHour < 8)||(tLocalTimeNow.wHour) > 17)
GetLocalTime(&tLocalTimeNow);
cout<<"\n*****PROGRAM CONTINUING*****\n";
return;
}
그런데 바쁜 대기는 정말 총체적입니다. 특히 한 번에 몇 분씩은 그렇습니다. (CPU 사용량은 100 %에 달하고 오랜 시간 동안 컴퓨터가 뜨거워 질 것입니다.) 대신 그 시간을 자고 싶다. –
과열 CPU가 SEGV와 같은 무작위 결함 트랩을 생성하는 것은 전례가 없습니다. 특히 그것이 항상 SEGV이고 다른 어떤 것이 아닌 경우에 당신의 경우는 아닙니다. 반복적이고 일관성이 있다면, 과열은 가능성이 있지만, 덜 가능성있는 범인입니다 ... – twalberg
다음 5 분 표시를 사용하면 100 % CPU 시간 대신 0 % CPU 시간을 사용하여 300 초 동안 잠자기 상태가되는'Sleep (300) '을 사용할 수 있습니다. 그러면 컴퓨터는 CPU를 사용하여 다른 유용한 작업을 수행 할 수 있습니다. 기다리고있어. 당신의 과정이 아니라 "우리는 아직 거기 있습니까?" 슈렉 (Shrek) 영화에서 동키 (Donkey)처럼. –