Есть ли что-то похожее на Stackless Python в C #? - PullRequest
2 голосов
/ 22 марта 2011

Есть ли что-то похожее на Stackless Python , то есть фреймворк, поддерживающий продолжения, микропотоки и облегченные процессы в C #? Я знаю, что C # 5 будет частично поддерживать некоторые из этих функций. Но есть ли что-нибудь, что можно использовать прямо сейчас?

Ответы [ 3 ]

2 голосов
/ 22 марта 2011

Axum похож, но был официально удален как проект от Microsoft:

http://msdn.microsoft.com/en-us/devlabs/dd795202

У меня есть запись в блоге, показывающая основную подпрограмму на работе:

http://adamhouldsworth.blogspot.com/2009/05/microsoft-axum-playtime.html

Я понятия не имею, была ли какая-либо из этих идей перенесена в параллельную работу, которая шла в .NET 4 или в async материал, предназначенный для C #, следующий.

Его можно использовать прямо сейчас, и он работает - но в некоторых небольших областях функция не завершена и не поддерживается в производственной среде, поскольку это (был?) Инкубационный проект.

Взгляните на это на CodeProject (оно может удовлетворить ваши требования "облегченного процесса"):

http://www.codeproject.com/KB/cs/managediocp.aspx

Обновление: по этой ссылке описывается поток данных TPL, в инфраструктуру .NET добавлено больше примитивов для поддержки программирования на основе агентов. Это снова может быть в области, которая вас интересует:

http://blogs.msdn.com/b/pfxteam/archive/2010/10/28/10081950.aspx

1 голос
/ 22 марта 2011

Мой ответ на этот вопрос может помочь вам начать. Я использую метод итератора (yield return) для реализации простой сопрограммы, чтобы в WPF происходила последовательность анимаций. Последовательность могла бы использовать любой вид зацикливания и т. Д. Это действительно только с использованием функций C # 2.0.

0 голосов
/ 22 марта 2011

Вы имеете в виду что-то вроде параллельных расширений PLINQ .NET Framework?

Блоки перечисления AFAIK в C # очень похожи на продолжения, но я не эксперт по python.

...