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