73 votes

Quelle est la différence entre SubscribeOn et ObserveOn

Je viens de découvrir SubscribeOn, ce qui me fait me demander si je ne devais utiliser qu'au lieu de ObserveOn. Google m'a emmené ici et ici, mais ni m'ont aidé à analyser la différence: il semble incroyablement subtile.

(Dans mon contexte, j'ai des événements "à venir" sur un non-thread gui, et j'ai besoin de passer à un thread gui avant d'utiliser les données de l'événement pour mettre à jour les contrôles).

56voto

Boris Points 2390

J'ai eu un problème similaire un certain temps en arrière et a demandé cette question à ce sujet. Je pense que les réponses (y compris les commentaires), il y aura une réponse à votre question. Pour résumer:

  • Si vous voulez mettre à jour les contrôles sur un thread gui, utilisez ObserveOn. Si vous faites référence System.Reactive.Windows.Forms.dll vous obtenez l' .ObserveOn(form) , ce qui est pratique.
  • SubscribeOn contrôle le thread sur lequel l'appel réel à vous abonner se passe. Le problème a été résolu ici est que WinForms et WPF lève des exceptions si vous ajouter des gestionnaires d'événements à partir de plusieurs threads différents.

Aussi, ce post a été très utile dans la compréhension de la relation entre ObserveOn et SubscribeOn.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X