ฉันมีบริการ windows เขียนบันทึกในไฟล์ข้อความในรูปแบบง่ายๆ
ตอนนี้ฉันจะสร้างแอปพลิเคชันขนาดเล็กเพื่ออ่านบันทึกของบริการและแสดงทั้งบันทึกที่มีอยู่และบันทึกที่เพิ่มเป็นมุมมองสด
ปัญหาคือบริการล็อกไฟล์ข้อความสำหรับการเพิ่มบรรทัดใหม่และในขณะเดียวกันแอ็พพลิเคชันวิวเวอร์จะล็อกไฟล์เพื่ออ่าน
รหัสบริการ:
void WriteInLog(string logFilePath, data)
{
File.AppendAllText(logFilePath,
string.Format("{0} : {1}\r\n", DateTime.Now, data));
}
รหัสผู้ชม:
int index = 0;
private void Form1_Load(object sender, EventArgs e)
{
try
{
using (StreamReader sr = new StreamReader(logFilePath))
{
while (sr.Peek() >= 0) // reading the old data
{
AddLineToGrid(sr.ReadLine());
index++;
}
sr.Close();
}
timer1.Start();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void timer1_Tick(object sender, EventArgs e)
{
using (StreamReader sr = new StreamReader(logFilePath))
{
// skipping the old data, it has read in the Form1_Load event handler
for (int i = 0; i < index ; i++)
sr.ReadLine();
while (sr.Peek() >= 0) // reading the live data if exists
{
string str = sr.ReadLine();
if (str != null)
{
AddLineToGrid(str);
index++;
}
}
sr.Close();
}
}
มีปัญหาในการอ่านและเขียนโค้ดของฉันหรือไม่?
จะแก้ปัญหาอย่างไร?