문제

내가 사용하고 gmap.net 지도에서 컨트롤 winform 응용 프로그램.그것은 좋은 실행에서 개발자의 컴퓨터 그러나 충돌에서 클라이언트 컴퓨터에 있지만 우리는 모두 업데이트 sytems.그 후 몇 분 거리에 지도가 충돌하고 다음과 같이 net framework 류enter image description here

도움이 되었습니까?

해결책

가 GMap.NET 제어 과거에는,그리고 내가 달렸으로 비슷한 문제가 발생합니다.해 뚱뚱한 빨간 십자가에서 배경 GMap.NET 제어 추락하는 동안 그 OnPaint 방법입니다.이 enumeration operation may not execute 오류가 발생하는 일반적으로 발생 수정하여 컬렉션하는 동안 반복하는것:이것이 대부분의 컬렉션의 유형에 프레임워크 허용하지 않습니다.

OnPaint 방법 GMap.NET 제어를 반복하는 수많은 컬렉션 사이에,기타 GMapControl.Overlays 컬렉션 GMapOverlay.Markers, GMapOverlay.RoutesGMapOverlay.Polygons 의 컬렉션 이러한 오버레이입니다.내 경우에,나는 수정을 이러한 컬렉션에서 백그라운드 스레드 동안 통제되었을 하려고 그 그림,그리고 따라서 반복 이러한 컬렉션이 있습니다.이 결과 행동에 있는 것과 비슷한 관찰되는 지금이다.

는 것으로 나타났 GMap.NET 사용하는 사용자 정의 컬렉션이라는 클래스 ObservableCollectionThreadSafe<T> 의 모든 결의 컬렉션입니다.이름을 의미한 스레드에 안전하고 따라서 가능한 포용력에 대한 수정안 반복지만,나는 공부 못 하는 그것의 구현하는지 모르겠어요 이것은 사실이다.나의 관찰을 보였음을 나타내지만,이는 전입니다.

시간에,내가 해결된 문제에 의해 를 호출하여 수정하여 상기의 컬렉션의 GUI 스레드(의 부족으로 동기화 개체에).를 호출하는 것을 보장 내용이 수정할 수 없과 동시에 실행 GMapControl.OnPaint 메소드는 항상에서 실행되는 GUI 를 실니다.

왜 당신은하지 않을 관찰에 대한 이 행동하기:이로 인해 수많은 이유입니다.아마도 당신은 운이 좋은,아마 당신은 당신을 사용하여 응용 프로그램과 다르게 클라이언트,등등.

당신은 아마 얻을 수 있습니다 더 많은 도움되는 답변을 당신의 질문에 대 GMap.NET 논의 포럼 방법은 있습니다.

다른 팁

사용자 버전은 Core.dll이 사용자의 PC에 설치된 i.e Visual Studio 또는 패키지 된 .NET 응용 프로그램에서 실행되는 사용자 버전이 실행중인 특정 Windows Form DLL을 누락 할 수 있습니다.이것이 아니라면 GMAP 포럼에서 도움을 구하는 것이 가장 좋을 수 있습니다.

이 문제를 해결하려면 마커 또는 다각형을 업데이트하거나 추가하는 동안 무효화를 비활성화해야합니다.

MyMap.HoldInvalidation = True

'
' Add markers or polygons now
' 

MyMap.HoldInvalidation = False      ' Not sure if this line is needed
MyMap.Refresh()
.

응용 프로그램을 실행하는 데 필요한 DLL이 누락되어 로컬 시스템의 전체 bin 폴더를 복사 한 다음 응용 프로그램을 실행하려고합니다.MSI 패키지를 작성한 경우 종속성이 올바르게 추가되는지 확인하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top