由于this无法如此轻易地解决,我如何使用Console.WriteLine()
和另一个线程逐行实现写字符串到文件/缓冲区的1个线程逐行读取来自同一文件/缓冲区的字符串?我想我需要:
ReadToEnd()
,必须直播)答案 0 :(得分:1)
答案 1 :(得分:0)
我想用缓冲区来做到这一点。
文件的解决方案:
class Program
{
private static bool terminated = false;
private static void listen()
{
StreamReader file = new StreamReader(new FileStream("C:/test.txt", FileMode.Open, FileAccess.Read, FileShare.ReadWrite));
while (!terminated || !file.EndOfStream)
if (!file.EndOfStream)
{
string text = file.ReadLine();
MessageBox.Show(text); // display it
}
}
static void Main(string[] args)
{
StreamWriter sw = new StreamWriter(new FileStream("C:/test.txt", FileMode.Create, FileAccess.Write, FileShare.Read));
sw.AutoFlush = true;
Console.SetOut(sw);
new Thread(new ThreadStart(listen)).Start();
for (int i = 0; i < 10; i++)
{
Thread.Sleep(250);
Console.Out.WriteLine("hello world - " + i);
}
terminated = true;
}
}
逐行工作,不会错过任何一个。