Несмотря на этот ответ , я думаю, что формальный ответ - нет.
Причина, по которой я говорю это, заключается в том, что Database
кэширует параметры хранимой процедуры в переменной экземпляра с именем parameterCache
.
Элементы добавляются в кеш, и кеш также может быть очищен с использованием метода ClearParameterCache()
без предварительного получения блокировки на parameterCache
.
Если вызывается ClearParameterCache()
, то возможны ситуации, когда один поток думает, что в кеше есть элемент, тогда другой поток очищает кеш, а когда первый поток возвращается, чтобы извлечь удаленный элемент, и исключение.
Хорошая новость заключается в том, что если ClearParameterCache()
никогда не вызывается, то худшее, что я могу ожидать, - это то, что первоначально параметры могли бы быть получены несколько раз и добавлены в кэш несколько раз (разными потоками). Я не проверял его, но похоже, что он все еще должен работать (хотя он неэффективен).
Итак, практически, если вы не звоните ClearParameterCache()
Я думаю, что вы должны быть в порядке.