У меня есть проект Visual Studio 2008 С#.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
, поэтому я не могу реализовать threadpool там.
Каков наилучший способ реализовать это?
Спасибо, PaulH