2009-07-15 26 views
3

我正在編寫一個小的.NET Windows窗體應用程序,並使用內置的Visual Studio設置來管理我的程序配置。然而,我注意到一個問題,即在我添加了一個StringCollection設置(用於存儲最近訪問的文檔的列表)後,我的程序花了很長時間才啓動。爲什麼從設置調用StringCollection變慢?

我在程序初始化過程中運行了StopWatch,發現即使調用StringCollection也需要100毫秒到300毫秒的啓動時間。我很可能知道你會說什麼,朋友之間有200毫秒的差距嗎?但是我覺得這很簡單會導致這樣的延遲,這似乎很奇怪。

所以我的問題是,爲什麼從設置調用StringCollection這麼慢,有什麼辦法可以避免這種延遲?

回答

3

它可能會加載額外的組件,否則直到以後才需要。

在加載設置之前,您可以使用Console.ReadLine()調用,並查看在Visual Studio中運行它以測試此理論之後,哪些程序集被加載。

+0

一個好主意。據我所知,它會加載一個額外的程序集,每次都會顯示一個隨機名稱,例如「ks2c2gnr」。我不明白.NET是否足夠了解它的重要性。 – 2009-07-15 21:16:39

1

這是在您第一次運行該程序時發生的,還是在隨後的執行過程中發生的(無需重建)。另外,這是一個發佈版本?

+0

是的,它發生在所有後續執行中,並且在發行版和調試版本上都是相同的。 – 2009-07-15 21:06:28