1

我有一个正在开发的 C# Windows 应用程序,我在它们自己的线程中启动不同的类(即:线程 1 中的 Class1 实例,线程 2 中的 Class 2 实例等)。

我正在尝试正确挂起/恢复线程,但我不知道如何在不同的类和线程之间共享 Monitor 的 Wait/Pulse 的锁变量。

似乎这应该有一个简单的答案,我就是想不通。我真的很感激任何帮助!

谢谢!

4

2 回答 2

1

使用公共static领域,例如,

public class Sync
{
    public static object LockObject = new object();
    //or any other sync mechanism 
    //AutoResetEvent,ManualResetEvent,Semaphore,CountdownEvent,Mutex etc.
}
于 2012-02-11T16:45:15.400 回答
0

监视器锁定对于 shnchronization 很有用,但是当用作消息传递API 时,它通常只扩展到两个线程,因为您需要确切地知道每个线程在哪里才能知道它是否收到消息。

当事情变得复杂时,AutoResetEvent 或 ManualResetEvent 通常更明智,因为它们对时间的要求不高:无论排序如何,您都可以通过大门。

于 2012-02-11T16:48:03.480 回答