최근 ArcGIS를 사용하여 일부 영역을 렌더링하는 C#으로 대규모 프로젝트를 상속 받았습니다. 현재이 도구를 사용하는 사람들은 도구의 성능이 매우 떨어지는 것에 대해 불평을 계속했으며 지금은 더 빨리 수행하는 것이 내 작업입니다.ArcGIS Desktop API - 렌더링이 완료되었는지 확인
코드를 처음 보았을 때 나는 두려웠다. 30-60s로 가득 차서 gis api를 호출 할 때마다 간단한 작업으로 인해 분이 소요됩니다. System.Threading.Sleep(30000);
잔다.
약간의 테스트를 거친 후 다음 작업을 수행하기 전에 장면이 완전히 렌더링되지 않았기 때문에이를 제거하면 스케치가 발생하지 않거나 아티팩트로 가득 차게되었습니다.
내 질문에 간단합니다. ArcGIS의 현재 상태를 표시하는 방법이 있습니까? '기본'30을 기다리는 대신 ArcGis가 현재보기에 준비가되었음을 표시 할 때까지 도구를 중지 할 수 있습니까? 내가 더 많은 코드 조각을 제공 할 수
doc.ActiveView = (IActiveView)doc.PageLayout;
doc.ActiveView.ContentsChanged();
System.Threading.Thread.Sleep(5000);
doc.PageLayout.ZoomToWhole();
System.Threading.Thread.Sleep(30000);
샘플 코드,하지만 난 질문을 더 일반적인 생각, 그리고 직접 내 코드 관련 :
는편집 감사드립니다.
이러한 핸들러가 내 애플리케이션의 대부분 이벤트에서 실행되지 않는 것 같아 불행히도이 방법은별로 도움이되지 않습니다. 노력을 위해 +1하겠습니다. 그것이 그것을 그대로두고해야 할 수도 있습니다. 해당 이벤트를 처리하기 위해 전체 도구를 다시 작성하는 데 너무 많은 노력이 필요합니다. – ZorleQ
+1에 대해 고맙다. –