0
我正在用C#编写视频播放器(视频工作正常),现在我需要的是获取libvlc日志以及我的自定义日志,以便将它们打印到文件中。为什么在这种情况下我有IOException?
我用NLOG它处理libvlc日志(与nVLC)和我提出一个事件为我的自定义日志,并在buth情况下,这种功能被称为:
private static void tracerlogs(string erreur, VLCControl.ControleUtilisateurVLC.LogLevels LvLog)
{
string path = "logs.txt";//Sera redéfini dans l'appli
if (!File.Exists(path))
{
// Create a file to write to.
using (StreamWriter sw = File.CreateText(path))
{
sw.WriteLine(erreur + " " + LvLog.ToString());
sw.Close();
}
}
else
{
using (StreamWriter sw = File.AppendText(path))
{
sw.WriteLine(erreur + " " + LvLog.ToString());
sw.Close();
}
}
Console.WriteLine(erreur + " " + LvLog.ToString());
}
的问题是,我得到随机发生System.IO.IOException异常,告诉“进程无法访问文件,因为它正在被另一进程使用”。尽管我关闭了StreamWriter(它通常在using
块中通常不会有用)...这会导致我的应用崩溃。有谁知道它为什么这样做?
启动应用程序时文件是否已经在文件夹中,或者当应用程序运行时是否将它们插入到文件夹中? – invidicult
有多少个线程访问这个方法?你为什么要重新发明轮子,而不是使用类似log4net的东西? – CodeCaster
“tracerlogs”可能是从多个线程调用的? –