2008-09-12 3 views
3

C#의 WinForms .Net 2.0 응용 프로그램에 MS MapPoint 2009를 통합하는 데 문제가 있습니다. 폼에 ActiveX MapPoint 컨트롤을 추가하고 맵과 위치를 표시하는 데 아무런 문제가 없습니다. 내 우려는 그것이 생성 된지도를로드하는 데 걸리는 시간입니다.MapPoint 2009로드 성능

내 개발 컴퓨터의 테스트 결과 응용 프로그램이 완전히 잠겨있는 동안 평균로드 시간이 3 초에서 5 초 사이 인 것으로 나타났습니다. 이것이 완전히 받아 들일 수있는 것은 아니지만 응용 프로그램을 제어 할 수 없게되는 데는 오랜 시간이 걸립니다. 또한, GUI 스레드가 잠겨 있기 때문에 로딩 대화 상자 나로드 타임을 마스크 할 무언가를 표시 할 수 없습니다.

멈추는 라인이있다 : I가 NewMap의 다른 스레드에있어서하지만 GUI 스레드가 여전히 차단되어 버린다 실행을 시도한

axMappointControl1.NewMap(MapPoint.GeoMapRegion.geoMapNorthAmerica); 

(axMappointControl1가 된 MapPoint 제어 임).

내 질문은 :

  • 내가 그것을로드 할 때를 MapPoint 속도를 위해 무엇을 할 수 있는가?
  • MapPoint를로드하여 GUI 스레드를 차단하지 못하도록 할 수 있습니까?

도움을 주시면 대단히 감사하겠습니다.

답변

5
액티브 시작의 속도 저하가 GUI 응답에 도움이 스레딩의 질문은 여전히 ​​열려 있지만 (잘 알려진 피할 수 mapforums.com에서 these threads에 따르면

.

한 가지 제안은 액티브 X 버전을 포기했다 . 도움이 MapPoint.Application 객체 대신

희망의 찬성

1

예 응용 프로그램 버전은 자체 스레드에서 실행 -. 그래서 이것은 빠른 대안이 될한다 - 쉽게 자신의 물건을 할하는 것이 시작입니다 동안 그러나 MapPoint 2010 년은 사용자가 시작할 때 시작하는 데 몇 초 정도 걸리는 경향이 있습니다.

임시 GUI 스레드를 생성하고이를 사용하여 시작 중에 스플래시 화면을 표시하거나 스레드 안전 초기화를 수행해야합니다.

MapPoint 인스턴스 (또는 ActiveX 컨트롤)에 대한 모든 호출은 MapPoint 컨트롤 또는 응용 프로그램 개체를 만드는 동일한 스레드에서 발생해야합니다.