2012-12-03 3 views
3

우리는 버튼을 누르고 나서 새 창을 여는 데 시간이 오래 걸리는 SWT 애플리케이션이 있습니다. 계산은 UI 스레드 (매우 좋지는 않지만 레거시 응용 프로그램)에서 수행되므로 작업 중 창이 고정됩니다. 일반적으로 작업이 완료되면 새 창이 올바르게 다시 그려집니다. 그러나 Windows 7에서 응용 프로그램을 실행하는 경우 Windows 원격 데스크톱을 사용하여 해당 컴퓨터에 연결합니다. 작업을 마친 후 새 창이 때때로 올바르게 그려지지 않습니다. 이것은 내가 다음 작업을 수행 할 때 발생합니다원격 데스크톱 (Windows 7)에 SWT 창이 올바르게 그려지지 않았습니다.

  • 을 눌러 계산 버튼
  • 에 대해 (아직 응답하지 않은) 내 응용 프로그램을 다시 내 응용 프로그램
  • 기다립니다
  • 스위치 겹치는 다른 창으로 전환 계산이 완료되었습니다.
  • 새 창이 열리지 만 내용이 올바르게 그려지지 않습니다.

창을 최소화하고 복원 한 후에는 다시 칠이 올바르게 수행됩니다.

한 가지 해결책은 원격 데스크톱 설정에서 최대 세부 정보를 설정하는 것입니다. 그러나 이것은 너무 많은 대역폭을 필요로합니다.

나는 SWT 버전 3.4.1, XP -> 윈도우 7은 물론 윈도우 7-에서 3.6.1, 4.2.1 및 원격 연결> 윈도우 7

enter image description here

+3

새 창을 연 후에 부모'Shell'에서'redraw()'를 호출 해 보았습니까? – Baz

답변

0

시도 테스트 paintListener, 레이아웃 또는 다시 그리기를 사용하고 그래픽 스레드 (즉 SWT 응용 프로그램의 기본 루프를 의미)에 다시 그리기를 넣는 것이 좋습니다. 나는 shell.redraw() 추가 shell.open()와 함께 새로운 창을 열어 Afer 즉

오른쪽 :

0

내 문제를 해결하는 것을 발견했다.

감사합니다 그 ;-)

이전 즐 생각을 수 있었 을까!

편집

:

는 불행하게도이 모든 상황에서 속임수를 썼는지. 그것은 전에 전에 응용 프로그램으로 다시 전환 할 때만 작동합니다. 제목 표시 줄에 "(응답 없음)"이라는 텍스트가 표시됩니다. 제목 표시 줄에 "(응답 없음)"이 이미 표시되어 있으면 이전과 같이 동작합니다.

관련 문제