我正在尝试创建一个named mutex,但是当我调用构造函数时,我得到一个DirectoryNotFoundException
!为什么互斥锁试图访问文件系统,我怎么知道什么是有效路径?是否应该放置互斥锁的特定目录,以及它与名称的对应关系?
编辑:我正在使用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)
答案 0 :(得分:19)
\
,其中Windows正在解释为路径字符。运行:
mutexName = mutexName.Replace(Path.DirectorySeparatorChar, '_');
修复了问题