我正在编写一个 TG 机器人,有一个异步方法来处理用户消息,如果用户第一次登录该机器人,会将其 TG 帐户数据写入 .json 文件。
我怀疑可能存在同时访问一个文件的情况,当新用户同时访问bot时,分别有两个线程会尝试写入一个文件
请告诉我如何消除这种情况?
public static async Task UpdateUserFile(string jsonPath, List<User> userList)
{
try
{
var jsonString = System.Text.Json.JsonSerializer.Serialize(userList);
await System.IO.File.WriteAllTextAsync(jsonPath, jsonString);
}
catch (Exception ex)
{
///...
}
}