Я создаю прослушиватель трассировки следующим образом:
// Setup log tracing.
Trace.Listeners.Add(new TextWriterTraceListener(MyLogPath));
Trace.AutoFlush = true;
Trace.WriteLine(DateTime.Now.ToString() + "-" + " Program started");
Когда я обнаруживаю, что файл слишком велик, я хочу его усечь (или, скорее, взять только последние N строк),Чтобы сделать это, я хочу прочитать файл, но, кажется, что независимо от того, что я делаю, у слушателя трассировки есть блокировка, то есть при попытке удалить слушателя трассировки и избавиться от его потока следующим образом:
// Clear logging.
Trace.Listeners[0].Close();
Trace.Listeners[0].Dispose();
Trace.Listeners.Clear();
, перед тем как прочитать это следующим образом:
// Read in existing log.
string[] lines = File.ReadAllLines(MyLogPath);
, выдаёт мне исключение ввода-вывода (файл используется другим процессом).
Есть мысли?