如何在C#中使用ReaderWriterLockSlim类实现线程安全的文件写入,以避免并发写入时的数据冲突?请提供代码示例。
时间: 2024-11-29 21:21:20 浏览: 30
为了避免多线程并发写入文件时发生数据冲突,可以使用C#的ReaderWriterLockSlim类来实现线程安全的文件操作。ReaderWriterLockSlim类允许多个读线程同时进行,但在有线程写入时,其他读写操作都会被阻塞,从而保证数据的一致性。以下是一个使用ReaderWriterLockSlim进行线程安全文件写入的示例代码:
参考资源链接:[C#使用读写锁解决多线程并发写文件问题](https://wenku.csdn.net/doc/645ce4ad59284630339c09e2?spm=1055.2569.3001.10343)
```csharp
using System;
using System.IO;
using System.Threading;
public class FileLogger
{
private readonly string _logFilePath;
private readonly ReaderWriterLockSlim _lock = new ReaderWriterLockSlim();
public FileLogger(string logFilePath)
{
_logFilePath = logFilePath;
}
public void WriteLog(string message)
{
try
{
_lock.EnterWriteLock();
using (StreamWriter writer = new StreamWriter(_logFilePath, true))
{
writer.WriteLine($
参考资源链接:[C#使用读写锁解决多线程并发写文件问题](https://wenku.csdn.net/doc/645ce4ad59284630339c09e2?spm=1055.2569.3001.10343)
阅读全文