|
허정주 님이 쓰신 글 :
: 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;
: : }
: :
: : 다음과 같은 함수를 하나 만들었습니다.
: :
: : 다른 함수에서 위의 함수를 호출했는데
: :
: : 실행할때 가령 버튼 두개에서 동시에 클릭을 하면 나중에 클릭한 하나만 작동하고 실행파일이 다운됩니다.
: :
: : 하나씩 각각 클릭 했을때는 작동을 잘 하는데 두개에서 동시에 클릭을 하니 작동이 안되더군요.
: :
: : 해결방법이 있을까요??
: :
: : 제가 몰 잘못했는지 초보라 잘 모르겠네요..해결 방법 좀 알려주세요..
|