আমার কাছে একটি উইন্ডোজ পরিষেবা একটি সহজ ফর্ম্যাটে কোনও পাঠ্য ফাইলে তার লগ লিখেছে।
এখন, আমি পরিষেবার লগটি পড়ার জন্য একটি ছোট অ্যাপ্লিকেশন তৈরি করতে যাচ্ছি এবং বিদ্যমান লগ এবং যোগ করা লাইভ ভিউ হিসাবে উভয়ই দেখায়।
সমস্যাটি হ'ল পরিষেবাটি নতুন লাইন যুক্ত করার জন্য পাঠ্য ফাইলটি লক করে এবং একই সাথে দর্শকের অ্যাপ্লিকেশনটি ফাইলটি পড়ার জন্য লক করে।
পরিষেবা কোড:
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();
}
}
আমার কোডে পড়া এবং লেখার পথে কোনও সমস্যা আছে?
কীভাবে সমস্যা সমাধান করবেন?