Реактивные расширения в коде Orleans grain

#c# #system.reactive #orleans

#c# #system.reactive #orleans

Вопрос:

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

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

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

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

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

Ответ №1:

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

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

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