我使用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