我有两个类,每个类都有一个private static List<int> list
, 和每个类中的方法来操作列表,它们采用以下形式:
public static void Add(int number)
{
lock (list)
{
Monitor.Pulse(list);
containers.Add(list);
Monitor.Wait(list);
}
}
问题是,如果我有两个线程,并且 Thread1 在 Class1 的 Add() 方法中,而 Thread2 在 Class2 的 Add() 方法中,那么它们每个都会到达 Wait() 方法。但是因为它们在不同的等待队列中,所以 Pulse() 方法将不起作用(至少,这是我怀疑的。)我该如何解决这个难题?