我有一个全新的应用程序,我正在开发。我是唯一使用它的人,所以我不可能与另一个人竞争。然而,即使如此,Mutex
往往失败。这是我的代码示例。Mutex偶尔失败
using (Mutex mutex = new Mutex(false, @"Global\MS_NBR"))
{
System.Diagnostics.Trace.WriteLine("Before " + @"Global\MS_NBR");
if (!mutex.WaitOne(TimeSpan.FromSeconds(30), false))
throw new ArgumentOutOfRangeException();
System.Diagnostics.Trace.WriteLine("After " + @"Global\MS_NBR");
..Here I assign a unique member number.. (runs in a fraction of a second)
mutex.ReleaseMutex();
}
这个工作,不时,但非常频繁抛出ArgumentOutOfRangeException
,这表明对我来说,它不能在30秒内获得互斥。
您正在收到的错误表示您在新增互斥锁的使用线? – AlG
@AlG不,它是'WaitOne'返回false并且OP引发异常的时候。 – juharr
您是唯一使用'Mutex'的应用程序,但您是否在各种线程中调用此例程?线程是否循环? –