我已在程序中添加了自动填充选项。它工作正常,但表现很慢。我正在向我的收藏中添加内容,这部分正在减慢我的程序。
while ((line = sr.ReadLine()) != null)
{
Line main = new Line();
main.LeftColumn = Time;
main.Middle= returnValue;
main.RightColumn = User_Description;
list3.Add(main);
//Here I add everything to my collection
if (main.Middle.Source.Device != null)
{
suggest.Add(main.Middle.Source.Device);
}
if (main.Middle.ID.Device != null)
{
suggest.Add(main.Middle.ID.Device);
}
}
我将我的东西添加到集合中我必须通过显示名为Line
的类main
的对象来访问它,而Middle
是此类的字段,它与其他类连接Source
或ID
,其中包含我要添加到集合中的字符串字段。
基本上,当我使用的文件很小(最多700行)时,它的工作速度不是很慢,但是当我把文件放在例如(3000行)时,需要一些时间来添加所有这些东西,在此过程中我可以不要使用我的申请。
如何让它更快地运作?可能吗?如果事情不明确,请问我,我会尝试解释更多。
答案 0 :(得分:0)
您将文件缩小到最小尺寸。如果文件大小小于1 MB,请检查文件大小。我认为对于3000线来说,它会少于那条线。一旦你这样做,而不是在内存中加载文件并将其保存在集合中,而不是对变量执行操作,并尝试单行读取所有文件而不是逐行读取(更好地使用File.ReadAllLines()一次读取)。在后台加载窗口时执行此操作。我认为这将彻底改变您的应用程序性能。
如果可能,请使用Dictionary而不是List,因为从列表中访问元素要快得多。我不知道你的应用程序逻辑,所以不能说你是否可以使用字典。所以要累积决定。
请使用文件中的正确数据检查内存限制。 如果这不能解决您的问题,请提供有关您的代码的更多详细信息。我会尝试模拟并帮助你。