|
김길용 님이 쓰신 글 :
: 멀티쓰레드라는 개념을 첨알게된 초보입니다.
:
: c++ 빌더로 토익게임을 만들고 있는데..
:
: 20초동안 마우스로 a,b,c,d 버튼중 하나를 입력하지 않으면 틀린것로 처리할려고 합니다.
:
: 멀티스레드를 이용해야한다는 것까지 알게 되었는데...
:
: 어떻게 구현하는지를 모르겠습니다.
:
: 1. 스레드를 2개를 만드는데 한개는 20초시간이 흘러가는 프로세스바를 만들어보여줄것이고
: 또 한개는 버튼을 입력받는 스레드를 만들것입니다.
:
: 2. TThread, CreatThread, BeginThead, 머 이런것들이 나오던데... 참고할만한 예제 소스좀 소개해주시면
:
: 감사하겠습니다..
:
: 숙제는 아니고 개인적으로 공부하다가 막혀서 질문드립니다.
위의 목적대로 만드실려고 하신다면 스레드보다는 타이머가 낳을거 같습니다.
스레드를 이용해서 만드는것도 가능은 하지만 위에것처럼 간단한 기능을 위해
복잡한 스레드까지 이용하는것은 자원도 더 소모하고 머리도 더 써야하는
비효율적인 방법 같습니다.
우선 스레드를 이용하려면
1. a,b,c,d 버튼이 눌렸을때 그것을 저장할 플래그를 만든다. bool bA,bB,bC,bD;
2. bA=bB=bC=bD = false;
3. 쓰레드를 생성한다 ( 스레드는 20초동안 잠자고 있다가 끝날무렵에 bA,bB,bC,bD를 체그해서 처리한다. )
4. 쓰레드 작동중 버튼이 눌리면 bA,bB,bC,bD 등 눌린 버튼을 true로 변경
5. 쓰레드를 닫는다.
타이머를 이용한다면
1. a,b,c,d 버튼이 눌렸을때 그것을 저장할 플래그를 만든다. bool bA,bB,bC,bD;
2. bA=bB=bC=bD = false;
3. 타이머를 생성한다 ( 원샷 타이머로 20초후에 이벤트라던지,펑션콜을 하게 만든다 )
4. 버튼이 눌리면 bA,bB,bC,bD 등 눌린 버튼을 true로 변경
5. 타이머 이벤트가 도착하면 그때의 bA,bB,bC,bD를 체크해서 처리~
꼭 성공하시길 바랍니다 ^^
음 추가합니다. 프로그레스바를 제가 보질 못했군요.
스레드로 구현시 1초당 프로그레스바를 작동시키면 될것이고
타이머의 경우 1초에 한번씩 이벤트가 발생하게 해놓고 발생할때마다 초를 계산해서
20초가 되면 끝나게 하면 되겠네요.
그리고 스레드에 관한 예제는 팁&트릭 이나 강좌/문서 란에 예전에 어떤분이
올려주신 강좌가 있습니다. 검색해서 한번 읽어보시면 쉽게 스레드를
사용하실 수 있을 것입니다. 그럼 좋은하루 보내시길 바랍니다.
|