我有一个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