Здравствуйте, -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>
Да, это примерно то, что надо, за исключением одного — я хочу убить те потоки (задачи, в данном случае), которые не успели отработать. Как это сделать?