我使用VB.Net,我有一套數據,我必須能夠相當快地過濾。基本上,該程序就像谷歌Sugest,但不是一個下拉菜單,我使用的是一個列表框。當用戶輸入一個單詞時,我會比較使用LINQ的單詞並過濾那些包含用戶輸入的單詞。數據都是可變長度的字符串(從0到200個字符,大多數在150個字符標記上),並且我有240,000多個字符串和計數 - 全部存儲在XML文件中。我應該在應用程序啓動時將所有內容加載到內存中嗎?
我的一位同事告訴我,將所有內容加載到內存中(使用VB.Net的XML串行器加上字符串/對象集合)是不實際的,並且會減慢程序的「啓動」時間。我還沒有完成這個程序,我對繼續這個道路有了第二個想法。
所以,我的問題是:我應該繼續我目前的問題(這是一切加載到存儲器上啓動),或者是有解決我的困境的一種更好的方式方法呢?
+1使用數據庫。另外,這是.NET中'BackgroundWorker'組件的很好的候選者 - 它確實應該做異步。 – 2009-10-09 22:39:15
做這種事情異步可能會被高估。如果用戶無法用應用程序做任何事情*直到整個數據集被加載並可搜索,那麼異步加載是沒有意義的。不過,數據庫是個好主意。 – MusiGenesis 2009-10-09 22:54:36
@MusiGenesis那麼,如果這是當然的情況。但是如果兩者之間存在一個頁面,或者需要執行某些其他操作(例如在訪問特定區域之前填充其他字段),則可以避免用戶查看等待應用程序加載的啓動屏幕。 – 2009-10-09 23:12:23