¿Cómo evitar que un método se ejecute a través de múltiples hilos?

Estoy trabajando en una aplicación web, donde varios usuarios pueden actualizar el mismo registro. Entonces, para evitar un problema si los usuarios actualizan el mismo registro al mismo tiempo, estoy guardando sus cambios en una cola. Cuando se produce cada guardado, quiero llamar a un método que procesa la cola en otro hilo, pero debo asegurarme de que el método no se pueda ejecutar en otro hilo si se vuelve a llamar. He leído varias publicaciones sobre el tema, pero no estoy seguro de qué es lo mejor para mi situación. A continuación se muestra el código que tengo ahora. ¿Es esta la forma correcta de manejarlo?

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;
            }
        }
    }
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta