Есть ли инструмент, который анализирует код .NET и находит условия гонки?
У меня есть фрагмент кода с общедоступным статическим свойством, которое получает или создает частное статическое поле. У него также есть общедоступный статический метод, который устанавливает для этого поля значение null (... да, я знаю! ..)
Поскольку для любого из этих методов нет блокировок, можно с уверенностью сказать, что в будущем что-то пойдет не так, как надо. Мне нужен инструмент, который рекурсивно перебирает вещи, вызывающие любой из этих методов, и проверяет, было ли что-то порождено в другом потоке.
Я ищу инструмент или, возможно, сценарий SQL nDepend (если это возможно).