הניסוח מעט חסר, אך אני חושב שהכוונה היא ש:
1. בכל כתיבה יוצרים אובייקט StreamWriter חדש. מאתחלים אותו, כך שהוא צריך לקבל גישת כתיבה לקובץ, כותבים את המידע וסוגרים את הקובץ. זה נעשה בכל כתיבה וכתיבה.
זה בזבזני. אפשר לחסוך את זמן הפתיחה-סגירה של הקובץ בכל פעם אם יוצרים את הStreamWriter בבנאי, נאמר, בכתיבה רק דואגים לכתוב אליו את המידע החדש, ואז דואגים לשחרר את הקובץ בסיום השימוש במחלקה.
2. בשימוש בStreamWriter צריך להפעיל את תבנית הDispose. או ע"י קריאה ישירה של הפונקציה בסיום השימוש בו, או על ידי שימוש בusing.
ע"י: מרואיין9731
שלום,
הנה שאלה מראיון עבודה, אשמח לתשובות.
public static class Logging
{
public Logging()
{
}
private static readonly object locker = new object();
public static void WriteToLog(string message)
{
lock(locker)
{
StreamWriter SW;
SW=File.AppendText("Data\\Log.txt");
SW.WriteLine(message);
SW.Close();
}
}
}
נניח שיש אלפי כתיבות ללוג בכל רגע נתון.
המטרה היא לראות את הלוגים בקובץ מבלי להמתין הרבה זמן, סדר ההופעה בקובץ אמור להיות לפי זמן הקריאה ללוג.
מה לא בסדר בקוד והצע פתרונות לפתור אותם.