C# 接收科目<;T>;如何取消订阅

C# 接收科目<;T>;如何取消订阅,c#,system.reactive,C#,System.reactive,我有一个服务返回一个主题,消费者正在订阅它。 如何取消现有订阅并将其处置?当您调用主题时,它会返回一个IDisposable。只需在返回的句柄上调用Dispose(),它将取消订阅。您的代码是订阅的代码,还是要取消订阅其他人的订阅?谢谢。如何有效地处理和创建主题,这是我的流程为我的RX为基础的搜索控制。。。。UserInput->do Async Search->当异步搜索正在进行时,如果用户再次搜索->处置并重新创建Subject@Andy:主题本身并不是一次性的。(当然,一个具体的可能是)。

我有一个服务返回一个
主题
,消费者正在订阅它。
如何取消现有订阅并将其处置?

当您调用
主题时,它会返回一个
IDisposable
。只需在返回的句柄上调用Dispose(),它将取消订阅。

您的代码是订阅的代码,还是要取消订阅其他人的订阅?谢谢。如何有效地处理和创建主题,这是我的流程为我的RX为基础的搜索控制。。。。UserInput->do Async Search->当异步搜索正在进行时,如果用户再次搜索->处置并重新创建Subject@Andy:
主题
本身并不是一次性的。(当然,一个具体的可能是)。处理订阅通常是很重要的,因为这是你停止听的方法——但是如果它在你的设计中非常解耦,GC可能会为你处理……@安迪,如果你在用户再次搜索时试图中止搜索,不要处理它,考虑使用TakeUntil。您可能希望通过动手实验室获得有关使用字典建议示例中服务的建议。
Subscribe
返回的
IDisposable
实例范围不实现一次性模式的终结器部分(否则,如果您没有存储值,订阅将被取消)。我同意@Jim的观点,即优先考虑将序列的终止部分组合到序列本身中。