2012-07-18 2 views
0

처음 프로그램을 실행할 때 OnPaint 함수에서 오랜 시간이 걸리는 내용이로드되고 표시 방법이 필요합니다. 내 진보. 나는 이미 진보 사항을 가지고 있지만, 나는 그것을 보여주는 가장 간단한 방법을 모른다.오랫동안 함수 (OnPaint)에 붙여 넣을 때 양식에 대한 업데이트를 표시하는 가장 쉬운 방법

은 장기간의 OnPaint 함수에서 stucked 때, 나는 진행을 보여주기 위해 타이틀 이름을 변경하고 반응 형태를 유지하기 위해 하나

  1. 뭔가를 원하고 나는 양식 응답 있고 싶어! 나는 사용자가 프로그램이 제대로 열려 있음을 알 수 있도록 표시하는 형태를 원하기 때문에

  2. 팝업 쉽게 BTW 진행을

을 보여주기 위해 만든 뭔가 다른, 난 단지의 OnPaint를 로딩하고 . 그렇지 않으면 양식이로드되는 동안 아무 것도 일어나지 않으며 사용자는 프로그램이 열리지 않았다고 생각할 수도 있습니다.

+0

[DoEvents] (http://www.codinghorror.com/blog/2004/12/is-doevents-evil.html) –

+1

페인트 이벤트에서 아무 것도 처리하지 않아야합니다. 빨리 무언가를 그립니다. 아마도 페인트 이벤트에서 처리 할 내용 *을 알아야 할 것입니다. – LarsTech

답변

0

DoEvent

을 제레미 톰슨 언급에 따라 경찰 많은 감사

이 대답을 받아 들일 수 있으려면 2 일을 기다려야하지만.

2

여기에는 많은 컨텍스트가 없지만 올바르게 이해하면 양식로드시 발생해야하는 작업이 있으며 시간이 오래 걸리는 것으로 보입니다. 페인트 이벤트에서이 작업을 시도하는 것은 사용자가 무언가가 인 것을 확인하기를 원하기 때문입니다.

해당 평가가 정확합니까?

그렇다면 BackgroundWorker 클래스는 UI 응답 성을 유지하면서 비싼 '로딩'작업을 수행 할 수 있도록 고려하는 것이 좋습니다.

훌륭한 일이 내가 여기에 또 다른 샘플을 쓸 것입니다 않는 문서와 예제 ...

BackgroundWorker Class

크리스

+0

안녕하세요 Chris 님, StackOverflow 답변에서 링크 내용의 요약이나 특별히 질문에 답변하는 하이라이트를 포함하는 것이 일반적입니다. SE 사이트의 목표는 수년간 지식의 지식, 답변의 자원이되는 것입니다. 링크 전용 답변을 사용하면 운영자는 확신 할 수없는 답변을 찾기 위해 다른 리소스를 파헤쳐 야합니다. 가장 중요한 것은, 귀하의 링크가 끊어지면 미래에이 페이지를 방문하는 모든 사람들에게 귀하의 대답은 쓸모 없다는 것입니다. 자세한 내용을 추가하려면 답을 [편집]하는 것이 좋습니다. 행운을 빕니다! –

+0

안녕하세요, 실제로 BackgroundWorker를 보았습니다. 그러나 내 양식의 멤버에 많은 양을로드하고 있기 때문에 스레드가 멤버에 직접 액세스 할 수 없기 때문에이 작업을 직접 수행 할 수는 없으며 너무 있어야합니다. 작동시키기 위해 많은 노력을 기울입니다. –

+1

@JeremyThompson이 언급했습니다. 추천서 뒤에있는 감독 및 추론을 알 수 있도록 시간을내어 주셔서 감사합니다. 고맙습니다! –