多个应用程序的WPF互斥对象不工作-STA问题
本文关键字:对象 工作 -STA 问题 应用程序 WPF | 更新日期: 2023-09-27 18:29:11
我遇到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
{
}
问题是,一个实例正在进入try并正常工作,另一个实例进入else块(因此也正常),但随后它捕获了一个异常,即
"调用线程必须是STA,因为许多UI组件都需要它。"
如果有人能帮我解决这个问题,我将不胜感激。
非常感谢!
这个问题似乎与Mutex无关,这只是误导了我。
关于catch块,我在那里处理异常,但这不是重点。
感谢您指出跟踪,看起来我是bli