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