多个应用程序的WPF互斥量无法正常工作 - STA问题

时间:2014-11-04 07:46:33

标签: c# wpf user-interface sta

我遇到过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组件都需要这样做。"

如果有人能够帮助我解决这个问题,那么我会感激不尽。

非常感谢!

1 个答案:

答案 0 :(得分:0)

似乎这个问题与Mutex无关,而Mutex只是误导了我。

关于catch块,我在那里处理异常,但这不是重点。

感谢指出痕迹,看起来像我是bli