Как предотвратить запуск метода через несколько потоков?

Я работаю над веб-приложением, в котором несколько пользователей могут обновить одну и ту же запись. Поэтому, чтобы избежать проблемы, если пользователи обновляют одну и ту же запись одновременно, я сохраняю их изменения в очереди. Когда происходит каждое сохранение, я хочу вызвать метод, который обрабатывает очередь в другом потоке, но мне нужно убедиться, что метод не может быть запущен в другом потоке, если он вызывается снова. Я прочитал несколько сообщений на эту тему, но не уверен, что лучше всего подходит для моей ситуации. Ниже приведен код, который я сейчас имею. Это правильный способ справиться с этим?

public static class Queue {
    static volatile bool isProcessing;
    static volatile object locker = new Object();

    public static void Process() {
        lock (locker) {
            if (!isProcessing) {
                isProcessing = true;

                //Process Queue...

                isProcessing = false;
            }
        }
    }
}

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

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