我有簡單的代碼,基本上打開mappoint並導入地址,然後計算路線。即使在關閉Mappoint之後,MapPoint.exe進程仍保留在系統中,完美地工作。MapPoint.exe進程停留在關閉應用程序時使用它與C#
沒有注意到老版本的MapPoint的這種問題。
我有簡單的代碼,基本上打開mappoint並導入地址,然後計算路線。即使在關閉Mappoint之後,MapPoint.exe進程仍保留在系統中,完美地工作。MapPoint.exe進程停留在關閉應用程序時使用它與C#
沒有注意到老版本的MapPoint的這種問題。
您需要在關閉MapPoint之後將您的變量顯式設置爲NULL。如果不這樣做,那麼對自動化對象的懸掛引用仍然存在,並且MapPoint認爲某些東西仍在使用它(儘管您會認爲引用計數會檢測到它不是)。
@ jm2.me:在閉包中唯一需要的MapPoint引用是MapPoint.Application的引用。任何其他人都可以重新思考。另請看Map的Saved屬性和UserControl屬性。這些可能會影響關閉。
順便說一句,肯懷特基本上是正確的 - 上面提到的屬性只是在某些邊緣情況下可能導致問題的東西 - 而且你暗示可能會引用你。
嗯,我可以將它設置爲null,但我需要這樣做,只有當mappoint本身關閉。有沒有像事件或某事? – 2011-05-05 00:42:39
不需要。當您使用它時,無論MapPoint本身是否關閉,都需要執行此操作。這是一個引用計數問題 - 無論何時通過自動化打開MapPoint,計數器都會增加; MapPoint將不會關閉,直到該計數器再次遞減到0。無需事件 - 它由COM自動完成。 IOW,當你MapPoint.Quit時,你需要事後清空你的變量。 – 2011-05-05 00:55:29