Есть ли что-то похожее на Stackless Python в C#?
Есть ли что-то похожее на Stackless Python, то есть фреймворк, который поддерживает продолжения, микропотоки и облегченные процессы в C#? Я знаю, что C# 5 будет частично поддерживать некоторые из этих функций. Но есть ли что-нибудь, что можно использовать прямо сейчас?
3 ответа
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
Мой ответ на этот вопрос поможет вам начать. Я использую метод итератора (yield return
) реализовать простую сопрограмму, чтобы в WPF происходила последовательность анимаций. Последовательность сможет использовать любой вид зацикливания и т. Д. Это действительно только использование функций C# 2.0.
Вы имеете в виду что-то вроде параллельных расширений PLINQ.NET Framework?
Перечислительные блоки AFAIK в C# очень похожи на продолжения, но я не эксперт по python.