运行 当我尝试将文件内容输入列表框时程序冻结
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 流前进到流的末尾。 ReadAllLines 打开它自己的流,读取所有内容,然后关闭它的内部流。所以你只需要阅读这些行,最终添加对文件存在性的检查。空文件不会执行任何操作,因为不会添加任何行。但如果你真的想要,你也可以添加对行数的检查。
if(File.Exists("ClosingStock.txt"))
{
string[] lines = File.ReadAllLines("ClosingStock.txt");
if(lines != null && lines.Length > 0)
SummaryClosinglistBox.Items.AddRange(lines);
}
请注意,要将一组项目添加到 ObjectCollection,您应该使用 AddRange 而不仅仅是 Add
我试图将此文件的内容添加到列表框中,但每次我这样做时,它都会冻结应用程序。我在可变行上放了一个手表,其中包含我要输入的数据,但它从文件中读取它,发生错误。
{
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 流前进到流的末尾。 ReadAllLines 打开它自己的流,读取所有内容,然后关闭它的内部流。所以你只需要阅读这些行,最终添加对文件存在性的检查。空文件不会执行任何操作,因为不会添加任何行。但如果你真的想要,你也可以添加对行数的检查。
if(File.Exists("ClosingStock.txt"))
{
string[] lines = File.ReadAllLines("ClosingStock.txt");
if(lines != null && lines.Length > 0)
SummaryClosinglistBox.Items.AddRange(lines);
}
请注意,要将一组项目添加到 ObjectCollection,您应该使用 AddRange 而不仅仅是 Add