Я хотел спросить, есть ли в C # или .net специальный механизм, который может делать следующее:
У меня есть многопоточное приложение, и я хочу, чтобы потоки не делали что-либо с одним файлом / папкой. как и команда lock(Object obj)
, она должна блокироваться, если другой поток что-то меняет в этом файле, папке или подпапке.
Например:
Все потоки начинаются в одно и то же время (хорошо, псевдо-то же время;)).
Поток A: использует folder1 \ folder2 \ file.txt и должен заблокировать его с помощью механизма.
Поток B: использует folder1 \ file2.txt и должен открыть другую блокировку
Поток C: хочет переименовать folder1 и должен быть заблокирован, пока Поток A и Поток B снимают блокировку.
Поток D: переименовывает папку 3 и открывает блокировку, которая ничего не блокирует.
Просто пример того, что я хотел бы увидеть ...
Должно быть возможным иметь неограниченные иерархические зависимости. Я знаю, что есть некоторые механизмы для поддержки блокировки файлов, и, возможно, есть что-то, что также блокирует папки с подпапками и предотвращает родительские изменения. Если ничего нет, то я должен реализовать это самостоятельно.