Реактивные расширения в зернистом коде Орлеана

в проекте https://github.com/dotnet/reactive произошло крупное обновление:

изменения версии 4.0

Ix Async 4.0 существенно отличается от предыдущих версий, поскольку является первой реализацией LINQ, поддерживающей новую функцию асинхронных потоков C# 8. Это означает, что для целей .NET Standard 2.1 и .NET Core 3 мы используем встроенные интерфейсы для IAsyncEnumerable и других. На других платформах мы предоставляем реализацию, так что вы можете использовать await foreach и создавать асинхронные итераторы, как вы ожидаете. Типы будут унифицированы с системными, где это предоставляет платформа.

Здесь много критических изменений; полный набор заметок об изменениях уже в пути.

Можно ли использовать эту библиотеку в коде Orleans для обработки потоков в зернах? Я знаю, что RX использует свой собственный планировщик для запуска наблюдателей и подписок (например, ObserveOn() и SubscribeOn()), и мне любопытно, будет ли это конфликтовать с собственным планировщиком Orlean, или есть ли способ заставить RX уважать или использовать средство запуска задач Orlean, передав его RX указанными выше способами.


person Milogrim    schedule 10.03.2019    source источник


Ответы (1)


Согласно последнему обновлению выпуска GitHub #315, Rx.NET не поддерживается в Орлеане. Теоретически это должно работать, и было предложено использовать что-то вроде:

var rxScheduler = new TaskPoolScheduler(new TaskFactory(RuntimeContext.Current));

Я также не нашел ничего полезного в истории канала Gitter.

person seniorquico    schedule 14.03.2019