Назад к задачамПолучайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Junior — Senior
13
Потокобезопасное изменение глобальных конфигураций в многопоточном приложении
Условие задачи
В каких ситуациях данный код может приводить к ошибкам и какие подходы помогут устранить эти проблемы?
class SettingsManager
{
public static string ServiceUrl { get; private set; }
public static string ServiceUser { get; private set; }
public static string ServicePassword { get; private set; }
private static object syncRoot = new object();
public static async Task RefreshSettings(string configPath)
{
try
{
Monitor.Enter(syncRoot);
var lines = await File.ReadAllLinesAsync(configPath);
ServiceUrl = lines[0];
ServiceUser = lines[1];
ServicePassword = lines[2];
}
finally
{
Monitor.Exit(syncRoot);
}
}
}