Высокоуровневые абстракции многопоточности / параллелизма для .NET

Мне просто интересно, почему, в отличие от Scala, F # или Haskell, базовая платформа .NET (доступная в C # или VB), по-видимому, имеет очень небольшую встроенную поддержку шаблонов параллелизма более высокого уровня.

Доступны базовые механизмы - блокировки, мониторы, пул потоков - но как насчет

Синхронизированные переменные (MVar)Синхронные каналыАсинхронные каналы (см. Go илиHaskell)Актеры / передача сообщений (Erlang-Style)фьючерсыПараллельные вычисления / Список функцийКомпозиционные асинхронные вычисления через Linq (как в F #async {})

или даже программная транзакционная память (СТМ для Хаскелла)

И даже принимая во внимание ParallelFX, этот список покрыт только частично.

Существуют ли определенные более глубокие причины против предоставления таких функциональных возможностей (и вместо этого хотят, чтобы люди возились сIAsyncResults) или это планируется интегрировать в будущем?

Ответы на вопрос(2)

Ваш ответ на вопрос