我有一个 Visual Studio 2008 C# .NET 3.5 项目,其中一个类侦听来自另一个多线程类的事件调用。我需要确保我的事件只允许同时访问最多 10 个线程。第 11 个线程应该阻塞,直到 10 个线程之一完成。
myobj.SomeEvent += OnSomeEvent;
private void OnSomeEvent(object sender, MyEventArgs args)
{
// allow up to 10 threads simultaneous access. Block the 11th thread.
using (SomeThreadLock lock = new SomeThreadLock(10))
{
DoUsefulThings(args.foo);
}
}
我无法控制其他MyObj
类,因此我无法在那里实现线程池。
实现这一点的最佳方法是什么?
谢谢,保罗