В моем коде я хочу проверить, выполняется ли задание (в другом потоке) или нет.
Я думал об использовании Dictionary<String, bool>
и проверке логического значения. Однако, поскольку я не знаю всех возможных задач при запуске, мне придется заполнять этот словарь на лету, когда задача запускается в первый раз, и запрашивать его следующим образом:
Boolean status;
if (_tasks.TryGetValue(lockName, out status))
{
return status;
}
return false;
Поскольку вместо этого bool само существование записи может быть информативным, я рассматриваю возможность использования Hashset<String>
и добавления / удаления значений вместо установки флага.
return _tasks.Contains(name)
Мне интересно, какой из этих двух подходов даст лучшие результаты. Я ожидаю примерно того же числа операций записи, что и операций чтения.