자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Firemonkey [XE6] 작업중 상태 보여주기..
2014.07.29 19:20
안녕하세요..
스마트폰앱 특성상 어떤 작업이 있을때 AniIndicator 로 작업중 상태를 보여주고 있습니다.
그런데,, 어떤 작업이 1초정도 걸리는 작업인데. AniIndicator 로 상태를 보여주면 로딩애니매이션도같이 멈추더군요..
아마도 동일 쓰레드 상이라 그런거 같은데.. 멈추는 작업 (예를 들어 Sleep(2000)) 을 했을때도 AniIndicator를 멈추지 않고 동작시킬 수 있는 방법이 없을까요?...
Firemonkey [XE6] 작업중 상태 보여주기..
2014.07.29 19:20
안녕하세요..
스마트폰앱 특성상 어떤 작업이 있을때 AniIndicator 로 작업중 상태를 보여주고 있습니다.
그런데,, 어떤 작업이 1초정도 걸리는 작업인데. AniIndicator 로 상태를 보여주면 로딩애니매이션도
같이 멈추더군요..
아마도 동일 쓰레드 상이라 그런거 같은데.. 멈추는 작업 (예를 들어 Sleep(2000)) 을 했을때도
AniIndicator를 멈추지 않고 동작시킬 수 있는 방법이 없을까요?...
질문에 답이 있습니다.
동일 쓰레드 상에서 Sleep을 하면 폼을 포함한 메인쓰레드가 멈추기 때문에
Aniindicator를 사용해도 멈추게 됩니다. Aniindicator를 이용하는 경우는
1, 백그라운드(별도 쓰레드)로 작업을 진행시 표시하셔야 합니다.
2, 짧게 진행되는 코드의 경우 Application.ProcessMessages;를 호출 해 큐에 쌓인 (UI등의)작업을 모두 처리하도록 강제할 수도 있습니다.
참고로 Sleep이 아닌 delay라는 함수를 UI에서 자유롭게 구현하는 예제입니다.
https://gist.github.com/hjfactory/4037075