В нашей кодовой базе есть много ограничений на потоки, закодированные в комментариях, например:
- Этот класс потокобезопасен (все общедоступные методы могут быть безопасно доступны из любого потока).
- Необходимо удерживать блокировку «xyz» для доступа/вызова любых публичных членов.
- Должен быть доступен только из потока "xyz" (обычно, но не всегда относится к потоку GUI)
- Эта блокировка должна быть взята после блокировки "xyz", если требуются обе
Первые три можно увидеть как на классах, так и на отдельных членах.
Я искал любые решения, которые могли бы хотя бы частично проверить, выполняются ли эти ограничения. Я понимаю, что существуют серьезные ограничения на то, насколько это может быть сделано автоматически, но даже небольшая помощь от инструмента действительно поможет. Я не мог найти ни одного, хотя.
Можете ли вы предложить инструмент, чтобы сделать что-то в этом направлении? Возможно, набор правил FxCop, который работает, кодируя вышеуказанные ограничения как атрибуты?