Вы не можете читать, когда происходит атомарная операция.

у глобальный обработчик ошибок / регистратор для приложений, работающих в Windows Azure. Когда в приложении возникает ошибка, выполняется ряд операций, которые должны выполняться атомарно. Мне нужно, чтобы ошибка не регистрировалась, пока предыдущая не будет завершена. Между тем, я хочу, чтобы чтения журналов происходили по мере необходимости.

Моя первоначальная мысль заключалась в использовании монитора / блокировки и блокировки только записи ошибок. Таким образом, чтение вообще не блокируется. Мне было интересно, хотя будет ли более подходящим ReaderWriterLockSlim. Я не могу сказать, что ядействительно понять ценность между одним подходом против другого.

Должен ли я создать ReaderWriterLockSlim и сделать что-то вроде следующего ниже (с чтениями, заключенными в EnterReadLock) ...

public static void LogError(Exception exception)
{
    _lock.EnterWriteLock();

    ...

    _lock.ExitWriteLock();
}

Или я просто делаю что-то вроде следующего, блокируя только разделы записи:

public static void LogError(Exception exception)
{
     lock (someStaticLock)
     {
        ...
     }
}

Любые мысли / советы будут высоко ценится.

Ответы на вопрос(3)

Ваш ответ на вопрос