这是我的情况。我希望在我的应用程序中尽可能高效地写入文件系统。该应用程序是多线程的,每个线程都可能写入同一个文件。有没有一种方法可以让我从每个线程异步写入文件,而不会让不同线程中的写入碰撞在一起?
我正在使用 C# 和 .NET 3.5,并且我也安装了响应式扩展。
对于那些喜欢代码的人,我使用以下方法从网络应用程序进行远程日志记录...
public static class LoggingExtensions
{
static ReaderWriterLock locker = new ReaderWriterLock();
public static void WriteDebug(this string text)
{
try
{
locker.AcquireWriterLock(int.MaxValue); //You might wanna change timeout value
System.IO.File.AppendAllLines(Path.Combine(Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase).Replace("file:\\", ""), "debug.txt"), new[] { text });
}
finally
{
locker.ReleaseWriterLock();
}
}
}
希望这可以节省您一些时间
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)