thread대신 while문을 이용한 동시 작업? 가능한가요?
CreamyGirl
질문 제목 : while문을 이용하여 간단한 동시 작업을 수행하고 싶습니다.질문내용 :time(NULL)로 현재 초 값을 받아와서 t에 저장하고,
while((time(NULL)t+2)의 조건을 만들었습니다.
while문 이전에는 WriteConsoleOutputCharacter를 이용한 문자열 출력이 있습니다.
그리고 while문과 문자열 출력이 또다시 while문 안에 갇혀있습니다. 다시 말해
while(1){
...
WriteConsoleOutputCharacter(...);
...
while((time(NULL)t+2){
...
}
}
의 구조입니다.
콘솔창에 출력되는 문자열은 랜덤한 위치에 출력되고 있습니다. 여기까진 쉽게 구현됩니다.
구현 목표는, 이문자열이 특정 위치에 출력되어 있는 동안제한시간 (이 경우 2초)를 두고,
이 시간 이내에 마우스 왼쪽 버튼이 문자열 위치에서 클릭되면 문자열을 지워나가는 것 입니다.
처음에는 시간 지연을 주기 위해 Sleep등을 사용하였지만.. 정말 자버려서 동시 동작을 못하죠..ㅜㅜ
thread를 사용하라는 걸 본적이 있는데, thread 함수를 구현할 때의 인수와 반환형 때문에 실패했습니다.
그래서 생각한 것이 while문을 저렇게 구현하여 제한된 시간동안만 while문 내에서
마우스 입력을 받는 것 입니다.
다시 말해,
시간 지연으로 인한 대기시간 동안 입력을 받지 못하는 것 (Sleep)을 방지하기 위해
while loop을 돌리는 시간을 정해준 것 입니다.
그런데 지금 마우스 입력받는 부분에서 자꾸 꼬여서 이 부분이 제대로 수행되고있는지 가늠할 수가 없습니다.
경우에 따라 됐다 안됐다 하는... 그런 느낌입니다..ㅠㅠ
그래서 우선 1차적으로 while문을 위와 같이 구현하였을 때,
시간지연+동작수행을 동시에 할 수 있는지를 이렇게 질문드립니다./font?
혹은 더 좋은 방법이 있다면 조언해주시면 감사하겠습니다.
-
올해1살
while((time(NULL)t+2){
...
Sleep(1);
}