Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#逐行从文件读取列表框_C#_Readline_Line By Line - Fatal编程技术网

C#逐行从文件读取列表框

C#逐行从文件读取列表框,c#,readline,line-by-line,C#,Readline,Line By Line,我在逐行读取文件中的文本时遇到问题 System.IO.StreamReader file = new System.IO.StreamReader("ais.txt"); while ((line = file.ReadLine()) != null) { listBox1.Items.Add(line); } 此代码仅从文件中读取最后一行并显示在列表框中。我怎样才能逐行阅读 例如:读一行,等一秒钟,读另一行,等一秒钟…等等。你试过了吗?您可以这样做: string[] lines

我在逐行读取文件中的文本时遇到问题

System.IO.StreamReader file = new System.IO.StreamReader("ais.txt");
while ((line = file.ReadLine()) != null)
{
    listBox1.Items.Add(line);
}
此代码仅从文件中读取最后一行并显示在列表框中。我怎样才能逐行阅读

例如:读一行,等一秒钟,读另一行,等一秒钟…等等。

你试过了吗?您可以这样做:

string[] lines = File.ReadAllLines(path);

foreach(string line in lines)
{
   listBox1.Items.Add(line);
}

您可以读取所有行并保存到数组字符串

  string[] file_lines = File.ReadAllLines("ais.txt");

然后按按钮逐行读取,或使用计时器等待1秒。如果要以1秒的延迟一次读取一行,可以向窗体中添加计时器来执行此操作(将其设置为1000):


您也可以一次读取所有行,只需一次显示一行,但我正试图使其尽可能靠近您的代码。

wait
使这非常容易。我们可以在所有行中循环并等待任务。Delay异步等待一段时间,然后继续,同时仍然不会阻塞UI线程

public async Task DisplayLinesSlowly()
{
    foreach (var line in File.ReadLines("ais.txt"))
    {
        listBox1.Items.Add(line);
        await Task.Delay(1000);
    }
}

您是否尝试过File.ReadAllLines()函数?我理解阅读每一行,但这一秒的等待是否重要?为什么不直接读入所有行?顺便说一句,除了不声明
,您的代码工作正常。@JonB是正确的……到底是什么问题?“等一秒钟,”你到底为什么要这样做?完成后关闭读卡器非常重要。
public async Task DisplayLinesSlowly()
{
    foreach (var line in File.ReadLines("ais.txt"))
    {
        listBox1.Items.Add(line);
        await Task.Delay(1000);
    }
}