Обычный шаблон для .NET синглетонов создает один экземпляр на домен приложения. Обычная ситуация в asp.net состоит в том, что у вас есть несколько потоков, проходящих через один домен приложения. Это означает, что вы вполне можете иметь несколько потоков, выполняющих код в вашем синглтоне одновременно.
Вы должны изучить синглтон и определить (в меру своих возможностей koffreflectorkoff ), является ли он потокобезопасным или нет. Если он сохраняет и изменяет общие ресурсы, или если он инкапсулирует какое-то состояние, которое сохраняется между вызовами методов, будьте осторожны.
Возможно, вы захотите заключить синглтон во второй синглтон, который использует блокировки, прежде чем делегировать свои вызовы тому, который вы не можете контролировать. Таким образом, вы могли бы лучше контролировать блокировку, а не блокировать каждый вызов синглтона с помощью одной блокировки. Это также дало бы вам возможность централизовать расположение потокового кода ...