我实现了一个连接多个客户端的服务器。服务器读取文本文件并将第一行发送到客户端并等待6秒并发送下一行,依此类推。现在我只想在点击按钮时发送一行。我该怎么做?
在我的按钮事件中,我将该方法放在一个任务中,因为服务器必须处理来自客户端的其他连接请求。
服务器端:
default_url_options[:host] = 'fake-name-92356.herokuapp.com'
答案 0 :(得分:2)
有两种简单的方法可以做到这一点。
<小时/> 如果Messwerte.txt文件在请求之间没有变化,请使用File.ReadAllLines方法将其内容存储在成员变量中:
private string[] lines = File.ReadAllLines("C:\\Messwerte.txt");
private int nextLine = 0;
然后改变这个:
line = reader.ReadLine() + Environment.NewLine;
对此:
line = lines[nextLine] + Environment.NewLine;
nextLine++;
<小时/> 或者,您不必一次读取所有行,如果文件使用File.ReadLines()方法增长,则更适合:
int lineCount = 0;
foreach (var lineInFile in File.ReadLines("C:\\Messwerte.txt"))
{
if (lineCount == nextLine) {
line = lineInFile;
nextLine++;
break;
}
lineCount++;
}
正如@Slai所指出的,这是实现第二种方法的理想方法:
line = File.ReadLines("C:\\Messwerte.txt").ElementAtOrDefault(nextLine++);