2008-09-12 4 views
3

MS MapPoint 2009をC#のWinForms .Net 2.0アプリケーションに統合する際に問題があります。私は、ActiveX MapPointコントロールをフォームに追加し、マップや場所を表示するのに問題はありません。私の懸念は、地図が作成された後に地図を読み込むのにかかる時間です。MapPoint 2009ロードパフォーマンス

私の開発マシンのテストでは、アプリケーションが完全にロックされている間に平均ロード時間が3〜5秒になっています。これは全く受け入れられないわけではありませんが、アプリケーションの制御を失うのは非常に長い時間です。また、GUIスレッドがロックされているため、読み込みダイアログや読み込み時間をマスクする何かを表示することはできません。

ハング行はこれです:(axMappointControl1がMapPointの制御である)

axMappointControl1.NewMap(MapPoint.GeoMapRegion.geoMapNorthAmerica); 

Iは、別のスレッドでNEWMAPメソッドを実行しようとしたが、GUIスレッドがまだブロックされてしまいます。

私の質問は以下のとおりです。

  • は、私はそれをロードするときのMapPointをスピードアップするために何ができますか?
  • MapPointをロードしてGUIスレッドをブロックしないようにする方法はありますか?

ご協力いただきまして誠にありがとうございます。 GUIの応答性を支援するためのスレッドの質問はまだ開いているものの

答えて

5

thesethreadsによるとmapforums.comでのActiveXの起動の遅さは、(よく知られており、避けられない。

ことの一つは、ActiveXのバージョンを放棄することを示唆しました。。MapPoint.Applicationオブジェクトの賛成で代わりに

役に立てば幸い

1

はいアプリケーションのバージョンは独自のスレッドで実行されます - これは速く代替する必要があります - それは開始されている間、あなた自身のものを行うことが容易にただし、MapPoint 2010年は、ユーザーが起動したときに起動するまでに数秒かかることがあります。

私は一時的なGUIスレッドを作成し、起動時にスプラッシュ画面を表示したり、スレッドセーフな初期化を行ったりする必要があります。

MapPointインスタンス(またはActiveXコントロール)へのすべての呼び出しは、MapPointコントロールまたはアプリケーションオブジェクトを作成する同じスレッドから行われている必要があります。

関連する問題