我有一個C#Windows應用程序我正在努力在自己的線程中啓動不同的類(即:線程1中的Class1實例,線程2中的類2實例,等等)。監視器鎖定線程和不同類的共享變量
我想正確掛起/恢復線程,但我無法弄清楚如何在不同的類和線程之間共享監視器的等待/脈衝鎖定變量。
這似乎應該有一個簡單的答案,我只是無法弄清楚。我非常感謝任何幫助!
謝謝!
我有一個C#Windows應用程序我正在努力在自己的線程中啓動不同的類(即:線程1中的Class1實例,線程2中的類2實例,等等)。監視器鎖定線程和不同類的共享變量
我想正確掛起/恢復線程,但我無法弄清楚如何在不同的類和線程之間共享監視器的等待/脈衝鎖定變量。
這似乎應該有一個簡單的答案,我只是無法弄清楚。我非常感謝任何幫助!
謝謝!
使用公共static
領域,恩,
public class Sync
{
public static object LockObject = new object();
//or any other sync mechanism
//AutoResetEvent,ManualResetEvent,Semaphore,CountdownEvent,Mutex etc.
}
監視器鎖定爲shnchronization有用的,但作爲一個消息 API,通常只擴展到兩個線程,因爲你需要確切地知道使用時每個人都知道它是否得到消息。
當事情變得複雜時,AutoResetEvent或ManualResetEvent通常更爲合理,因爲它們不那麼重要:無論排序如何,您都可以通過門。
'這似乎應該有一個簡單的答案'< - 我想我看到你的問題。 – Hogan 2012-02-11 16:35:29
@ L.B。如果沒有對問題的充分理解,就很難評論「靜態」,但問題/問題中沒有任何理由來證明「公共領域」(嗯,現在這涉及到刪除的評論) – 2012-02-11 16:45:36