寫一個多線程寫入同一個記錄檔c#語言
时间: 2023-11-12 07:46:36 浏览: 26
在C#中实现多线程写入同一个文件可以使用锁机制来确保线程安全。可以使用lock关键字来创建一个互斥锁,以确保同时只有一个线程可以访问共享资源。以下是一个示例代码:
```csharp
using System;
using System.IO;
using System.Threading;
namespace MultiThreadFileWriting
{
class Program
{
static object lockObject = new object();
static void Main(string[] args)
{
// 创建多个线程来写入文件
for (int i = 1; i <= 5; i++)
{
Thread thread = new Thread(WriteToFile);
thread.Start(i);
}
Console.ReadLine();
}
static void WriteToFile(object threadId)
{
string fileName = "log.txt";
string message = $"Thread {threadId} is writing to the file.";
lock (lockObject)
{
// 写入文件
using (StreamWriter writer = new StreamWriter(fileName, true))
{
writer.WriteLine(message);
}
}
Console.WriteLine(message);
}
}
}
```
在上述代码中,我们创建了一个名为`lockObject`的锁对象,然后在`WriteToFile`方法中使用`lock`关键字来锁定该对象。这样就确保每次只有一个线程可以进入临界区,避免多个线程同时写入文件导致的冲突。通过这种方式,我们可以实现多线程写入同一个文件的功能。