我遇到过Mutex类的问题。我在多实例WPF应用程序中工作,并希望锁定特定进程,使其不被所有其他实例输入,除了首先调用方法的实例。
所以我创建了一个新的互斥对象:
private static Mutex lockMutex = new Mutex(false, "LockOnTaskOpen");
然后在方法中我做了以下事情:
try
{
if (lockMutex.WaitOne(500))
{
try
{
// doing my code here
}
catch (Exception e)
{
ex = e;
}
finally
{
lockMutex.ReleaseMutex();
}
}
else
{
return;
}
}
catch
{
}
问题是一个实例正在进行尝试并且工作正常,另一个实例转到else块(所以也可以),但是它会捕获一个异常,就是这个:
"调用线程必须是STA,因为许多UI组件都需要这样做。"
如果有人能够帮助我解决这个问题,那么我会感激不尽。
非常感谢!
答案 0 :(得分:0)
似乎这个问题与Mutex无关,而Mutex只是误导了我。
关于catch块,我在那里处理异常,但这不是重点。
感谢指出痕迹,看起来像我是bli