繁体   English   中英

当我尝试将文件内容输入到列表框时,程序在运行时冻结

[英]Program freezes when running as I try to input file contents into listbox

我正在尝试将此文件的内容添加到列表框中,但每次我这样做时,它都会冻结应用程序。 我在变量行上放了一个手表,其中包含我要输入的数据,但它从文件中读取它,发生错误。

        {

            StreamReader inputfile;

            inputfile = File.OpenText("ClosingStock.txt");

            while (!inputfile.EndOfStream)
            {
                string[] lines = File.ReadAllLines("ClosingStock.txt");
                SummaryClosinglistBox.Items.Add(lines).ToString();
            }
            
        }

Any help would be very much appreciated.

此循环条件将导致无限循环,因为您永远不会更改 inputFile 变量上的 EndOFStream

while (!inputfile.EndOfStream)

您使用 File.ReadAllLines 读取该行的事实并不意味着inputFile stream 前进到 stream 的末尾。 ReadAllLines 打开自己的 stream,读取所有内容,然后关闭其内部 stream。 所以你只需要阅读这些行,最终添加一个文件存在检查。 一个空文件不会做任何事情,因为不会添加任何行。 但如果你真的想要,你也可以添加对行数的检查。

if(File.Exists("ClosingStock.txt"))
{
    string[] lines = File.ReadAllLines("ClosingStock.txt");

    if(lines != null && lines.Length > 0)
        SummaryClosinglistBox.Items.AddRange(lines);
}

请注意,要将一组项目添加到 ObjectCollection,您应该使用 AddRange 而不仅仅是 Add

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM