У меня есть метод в многопоточном приложении, и мне нравится следующее поведение при вызове этого метода:
- Если ни один другой поток не выполняет этот метод, выполните его.
- Если другой поток в настоящее время выполняет метод, то выйдите из метода, не выполнив его.
Оператор lock
в С# полезен для ожидания, пока поток завершит выполнение, но я не хочу сериализовать доступ к этому методу, а скорее обходить выполнение указанного метода, если он выполняется другим потоком.