|
Timer 하나를 두군데서 참조한 것이 정상적으로 보이진 않지만 다운의 직접 요인은 아닌 것 같네요.
한가지 떠오른 생각이 두 버튼에서 동작하는 코드가 Count 변수를 공유하는 것으로 보아
마지막 Count-- 부분에서 문제가 있어보이네요.
Button1 에서 Count-- 로 Count 가 0 이 되어 탈출 하고나면
Button2 에서 시간이 안되어 루프를 돌다가 Count-- 를 만납니다
이 때, 이미 Count 는 0 이므로 -1 값이 되죠.
while ( Count ) 부분을 보면 Count 가 0 이 아니면 계속 돌게 될 겁니다.
부분밖에 안보여서 정확한 다운의 원인인지는 모르겠습니다만 문제가 있어 보입니다.
왕초보 님이 쓰신 글 :
: void __fastcall examlpe(int ret, int result)
: {
: int i=0;
: i= abs(ret-result);
: Timer1->Enabled=true;
: while(1)
: {
: Application->ProcessMessages();
: if (Count >=i)
: break;
: }
: int iFirst = timeGetTime();
: while(Count)
: {
: while((timeGetTime() - iFirst) < 1000)
: {
: Application->ProcessMessages();
: }
: Count--;
: }
: Timer1->Enabled=false;
: }
:
: 다음과 같은 함수를 하나 만들었습니다.
:
: 다른 함수에서 위의 함수를 호출했는데
:
: 실행할때 가령 버튼 두개에서 동시에 클릭을 하면 나중에 클릭한 하나만 작동하고 실행파일이 다운됩니다.
:
: 하나씩 각각 클릭 했을때는 작동을 잘 하는데 두개에서 동시에 클릭을 하니 작동이 안되더군요.
:
: 해결방법이 있을까요??
:
: 제가 몰 잘못했는지 초보라 잘 모르겠네요..해결 방법 좀 알려주세요..
|