0
我遇到了Mutex類的問題。我正在處理多實例WPF應用程序,並希望鎖定除了首先調用方法之外的所有其他實例輸入的特定進程。多個應用程序無法正常工作的WPF互斥體 - STA問題
所以我創建了一個新的互斥對象:
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
{
}
而問題是,一個實例正在進入一個嘗試,工作正常,另一個例子去其他塊(所以也可以),但它會發現這是一個例外:
「調用線程必須是STA,因爲馬你的UI組件需要這個。「
如果有人能夠幫助我解決這個問題,那麼我會很感激。
非常感謝!
您確定異常是由'Mutex'使用?什麼是堆棧跟蹤?什麼代碼實際上拋出異常?爲什麼_isn't_線程STA已經? (並且請告訴我們,在所有例外情況下,您實際上並沒有使用blanket catch,而沒有在生產代碼中向用戶進行任何報告)。 – 2014-11-04 07:55:59