2017-01-05 6 views
0

上記の例外をどのように診断できますか?ARCGIS Runtime for .NET:System.ArgumentException '同じキーのアイテムが既に追加されています'が表示されるのはなぜですか?

  1. は、ポリゴン形状としてグラフィックを作成します
  2. mappointsPointCollectionあるpoly = new Polygon(mappoints))ポリゴンの集合をオーバーレイ(overlay = new GraphicsOverlay()
  3. を作成します。私のコードでは、私は、おおよそ次の操作を行います各ポリゴン (graphic = new Graphic() { Geometry = poly, Symbol = new SimpleFillSymbol() { Color = Colors.Red } }
  4. のためのシンプル塗りつぶしシンボルは、オーバーレイにそのグラフィックを追加します。 (overlay.Add(graphic)

次に、何かが変更されたら、私はoverlay.Graphics.Clear()に電話をかけ、ステップ2-3を繰り返します。

私はこれを行うと、時々new Graphic(...)に、私は例外(ただし、毎回)を取得します

私はEsri.ArcGISRuntimeバージョン100.0.0.0を使用しています。 何が起こっているか考えてみましょうか?

答えて

0

[OK]を、それが問題だったように見えることoverlay.Graphics.Clear()だけで根本的なネイティブオブジェクトがまだ配置されていなかったガベージコレクタにオブジェクトを解放したため。実行するためにガベージコレクタを強制することにより、

は:

GC.Collect(); 
    GC.WaitForPendingFinalizers(); 

これは、オブジェクトが配置されており、「同じキー」例外

+0

これは自分のコード内のエラーであり、私の解決策は、当面の回避策であることをことを示すESRIの人々から注意を受けました。 –

0

をelimintateされる原因となった。これは、我々が固定されています既知のバグ次回の更新。今のところGCを強制して問題を回避できます。

関連する問題