Saya memiliki layanan windows menulis log-nya dalam file teks dalam format sederhana.
Sekarang, saya akan membuat aplikasi kecil untuk membaca log layanan dan menampilkan log yang ada dan yang ditambahkan sebagai tampilan langsung.
Masalahnya adalah layanan mengunci file teks untuk menambahkan baris baru dan pada saat yang sama aplikasi penampil mengunci file untuk dibaca.
Kode Layanan:
void WriteInLog(string logFilePath, data)
{
File.AppendAllText(logFilePath,
string.Format("{0} : {1}\r\n", DateTime.Now, data));
}
Kode Penampil:
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();
}
}
Apakah ada masalah dalam kode saya dalam membaca dan menulis?
Bagaimana cara mengatasi masalah tersebut?