Я бы пошел с библиотекой задач .Net 4, намного более чистой, чем старая модель Thread
// Create a task and supply a user delegate by using a lambda expression.
var taskA = new Task(() =>Parallel.ForEach(Pollers.Where(p => p.Active), p =>p.StartPolling()));
// Start the task.
taskA.Start();
, вы можете узнать больше о параллельной библиотеке задач ЗДЕСЬ
РЕДАКТИРОВАТЬ: Вам необходимо включить это пространство имен: System.Threading.Tasks
РЕДАКТИРОВАТЬ2: Да, как прокомментировано, вероятно, было бы лучше, если вы используете
Task.Factory.StartNew(() =>{ Parallel.ForEach(Pollers.Where(p => p.Active);})
однако вы должны знать, что это НЕ всегда лучший способ, в зависимости от кода, посмотрите ЭТОТ БЛОГ MSDN , чтобы узнать больше о разнице между этими двумя