목적은 Loop 문이 돌고 있을때, 버턴을 누르면 정지를 하고, 시작 버튼을 누르면 다시 시작하는 것입니다.
여기서 정지라는 것은 일시정지(pause)가 아닌 Loop문의 초기 위치에서 대기 입니다. 간단한 예로
Gui show
Button시작:
{
Loop
{
}
}
return
Button중지:
{
--시작의 Loop문을 초기화 시키는 구조
}
1) 중지에 Reload를 사용할경우, Gui까지 새롭게 되서 그렇구요.
2) pause와 같은 일시 정지는 원하는게 아니구요.
3) Loop문에 Flag를 걸어 brake로 빠져나오는것은 Loop문이 길어서 flag를 만나는데 너무 오래 걸리네요.
혹시 즉각 멈추게 하는 방법이 있을까요?
참고로 Button시작 -> 버튼 중지 -> 버튼 시작을 누르면 시작 Thread가 죽지 않아서 인지 실행이 되지 않더군요.
검색을 해도 잘 못찾아서 이렇게 질문을 드립니다~
아래 로직대로 하시면 되는데 initRun 안의 로직구현 Loop를 추가 구현시 딜레이가
발생하므로 잘 생각해서 해야되요...
;최초실행 (메인 쓰레드)
initRun:
Loop
{
if (runFlag = false)
{
;정지중
sleep, 1000
continue
}
;구동중
;구현 위치
}
return
Button시작:
runFlag := true
return
Button중지:
runFlag := false
return