文本框自动完成工作非常慢

时间:2013-08-19 05:41:44

标签: c# winforms autocomplete

我已在程序中添加了自动填充选项。它工作正常,但表现很慢。我正在向我的收藏中添加内容,这部分正在减慢我的程序。

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是此类的字段,它与其他类连接SourceID,其中包含我要添加到集合中的字符串字段。 基本上,当我使用的文件很小(最多700行)时,它的工作速度不是很慢,但是当我把文件放在例如(3000行)时,需要一些时间来添加所有这些东西,在此过程中我可以不要使用我的申请。

如何让它更快地运作?可能吗?如果事情不明确,请问我,我会尝试解释更多。

1 个答案:

答案 0 :(得分:0)

您将文件缩小到最小尺寸。如果文件大小小于1 MB,请检查文件大小。我认为对于3000线来说,它会少于那条线。一旦你这样做,而不是在内存中加载文件并将其保存在集合中,而不是对变量执行操作,并尝试单行读取所有文件而不是逐行读取(更好地使用File.ReadAllLines()一次读取)。在后台加载窗口时执行此操作。我认为这将彻底改变您的应用程序性能。

如果可能,请使用Dictionary而不是List,因为从列表中访问元素要快得多。我不知道你的应用程序逻辑,所以不能说你是否可以使用字典。所以要累积决定。

请使用文件中的正确数据检查内存限制。 如果这不能解决您的问题,请提供有关您的代码的更多详细信息。我会尝试模拟并帮助你。