Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 在反应式扩展(Rx)中,从不同线程触发OnNext是否粗鲁?_.net_Multithreading_Concurrency_System.reactive - Fatal编程技术网

.net 在反应式扩展(Rx)中,从不同线程触发OnNext是否粗鲁?

.net 在反应式扩展(Rx)中,从不同线程触发OnNext是否粗鲁?,.net,multithreading,concurrency,system.reactive,.net,Multithreading,Concurrency,System.reactive,当您自己实现IObserver时,您知道如何处理从不同线程并发或顺序调用OnNext的情况,但是当涉及到这一点时,内置反应式扩展原语的期望是什么?例如,BufferWithTime能否处理从多个线程调用的OnNext?从多个线程同时调用?只要您遵循Rx使用的合同的两部分,您就可以: 遵循以下语法:OnNext*(OnError | OnCompleted) 确保您的消息同步(飞行中没有两条消息同时出现) 您可以使用Observable.Synchronize操作符来修复IObservable

当您自己实现IObserver时,您知道如何处理从不同线程并发或顺序调用OnNext的情况,但是当涉及到这一点时,内置反应式扩展原语的期望是什么?例如,BufferWithTime能否处理从多个线程调用的OnNext?从多个线程同时调用?

只要您遵循Rx使用的合同的两部分,您就可以:

  • 遵循以下语法:OnNext*(OnError | OnCompleted)
  • 确保您的消息同步(飞行中没有两条消息同时出现)
您可以使用Observable.Synchronize操作符来修复IObservable的一个实现,该实现不遵循这两个规则

杰弗里