2010-06-22 3 views
2

Lors de l'implémentation de IObserver vous-même, vous savez comment gérer une situation où OnNext est invoqué à partir de threads différents, simultanément ou séquentiellement, mais quelles sont les attentes des primitives intégrées Reactive Extension à cet égard? BufferWithTime, par exemple, fera-t-il face à OnNext étant invoqué à partir de plusieurs threads? Invoqué simultanément à partir de plusieurs threads?Est-il impoli de déclencher OnNext à partir de différents threads dans Reactive Extensions (Rx)?

Répondre

2

Tant que vous suivez les deux parties du contrat que Rx utilise, vous devriez être bien:

  • suivre la grammaire suivante: OnNext * (OnError | OnCompleted)?
  • assurez-vous que vos messages sont synchronisés (pas deux messages en vol en même temps)

Vous pouvez utiliser l'opérateur Observable.Synchronize pour fixer une implémentation de IObservable qui ne suit pas ces deux règles.

Jeffrey

Questions connexes