Сценарий, с которым я сталкиваюсь, как показано ниже. Поскольку ThreadPool - это 1 экземпляр на процесс, поэтому мой вопрос заключается в том, что будет метод 1 отменять задачи, поставленные в очередь методом 2 через 3 секунды ?
http-запрос приходит
*method 1 gets executed first*:
ThreadPool.QueueUserWorkItem x 3
WaitHandle.WaitAll for 3 seconds
*method 2 gets executed after method 1*:
ThreadPool.QueueUserWorkItem x 10
WaitHandle.WaitAll for 10 seconds
Извините, я думаю, что совершенно неправильно понял использование WaitHandle. Кажется, что если я сделаю ниже, все будет работать, как хотелось бы. Извините за путаницу.
var calls = new ManualResetEvent[5];
//ThreadPool.QueueUserWorkItem blah...
WaitHandle.WaitAll(calls, timeOut);
Но я все еще думаю, что произойдет, когда метод 1 заполнит пул потоков долго выполняющимися задачами, а метод 2 ждет только 1 секунду. Будет ли метод 2 когда-нибудь возвращать свои результаты, потому что он не ждет достаточно долго.
Спасибо.