Ответ 1
А, нашел, в чем проблема. Мое имя мьютекса содержало \
, в котором окна интерпретировались как символ пути. Продолжительность:
mutexName = mutexName.Replace(Path.DirectorySeparatorChar, '_');
устраняет проблему
Я пытаюсь создать имя mutex, но когда я вызываю конструктор, я получаю DirectoryNotFoundException
! Почему мьютекс пытается получить доступ к файловой системе и как узнать, что является допустимым путем? Есть ли какой-либо конкретный каталог, в который должен быть помещен мьютекс, и как это соответствует имени?
EDIT: я использую перегрузку Mutex(bool, string)
, и исключение:
System.IO.DirectoryNotFoundException: Could not find a part of the path '<mutex name>'.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.Threading.Mutex.<>c__DisplayClass3.<.ctor>b__0(Object userData)
at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
at System.Threading.Mutex..ctor(Boolean initiallyOwned, String name, Boolean& createdNew, MutexSecurity mutexSecurity)
at System.Threading.Mutex..ctor(Boolean initiallyOwned, String name)
А, нашел, в чем проблема. Мое имя мьютекса содержало \
, в котором окна интерпретировались как символ пути. Продолжительность:
mutexName = mutexName.Replace(Path.DirectorySeparatorChar, '_');
устраняет проблему