2010-01-03 1 views
2

Поскольку Microsoft, вероятно, убила все ссылки для скачивания в Parallel Extensions CTP, я полностью потерян.Максимальное количество потоков в реактивных расширениях/параллельных расширениях

Я хочу указать максимальное количество задач, выполняющихся в определенное время, так как я хочу больше потоков, чем процессоры. Есть ли подсказка, как это сделать в RX?

ответ

0

Не нашли требуемое решение. Вместо этого используется ThreadPool по умолчанию.

1

Можете указать TaskFactory, используемый в RX? Если это так, вы можете создать его с TaskScheduler с соответствующим уровнем параллелизма. Для меня сейчас нет очевидного, есть ли «запасные» планировщики, которые позволяют это, или он скрыт (Parallel LINQ, безусловно, предлагает опции «максимального параллелизма»), но это общий план.

Конечно, если вы не можете изменить, какая фабрика задач используется, это не очень помогает.

+0

Как создать новый TaskScheduler? Реализовать, наследуя по умолчанию 'TaskScheduler'? –

+0

Inherting default TaskScheduler сосет, поскольку почти все является приватным; и я не чувствую необходимости переписывать всю часть планировщика. –

+1

@Jan: все, что вам нужно сделать, это переопределить свойство MaximumConcurrencyLevel: http://msdn.microsoft.com/en-us/library/system.threading.tasks.taskscheduler.maximumconcurrencylevel(VS.100).aspx –