Re[2]: ThreadPool.QueueUserWorkItem, выполнение потоков
От: Степанов Андрей  
Дата: 27.01.12 05:23
Оценка:
Здравствуйте, -VaS-, Вы писали:

СА>>2) Задача достаточно простая: есть метод, вызываемый веб-сервером. Внутри него надо параллельно запустить еще 10 методов, дождаться их завершения (но ждать не больше 10 секунд), после чего немного обработать результаты (паралеллизм тут уже не требуется) и выйти.


VS>
VS>        private int P1(){return 1;}
VS>        private bool P2(){return true;}

VS>        private void DoAll()
VS>        {
VS>            Task<int> task1 = Task.Factory.StartNew<int>(P1);
VS>            Task<bool> task2 = Task.Factory.StartNew<bool>(P2);

VS>            if (!Task.WaitAll(new Task[] { task1, task2 }, TimeSpan.FromSeconds(10)))
VS>                throw new Exception("Timeout");

VS>            int result1 = task1.Result;
VS>            bool result2 = task2.Result;
VS>        }
VS>


Да, это примерно то, что надо, за исключением одного — я хочу убить те потоки (задачи, в данном случае), которые не успели отработать. Как это сделать?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.