首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Subject<T>停止发布项目

Subject<T>停止发布项目
EN

Stack Overflow用户
提问于 2011-06-26 07:25:33
回答 1查看 426关注 0票数 3

我有一个Subject<T>,我要通过OnNext将条目发布到其中,过了一段时间,在负载下,我得到了这个异常:

代码语言:javascript
复制
System.NullReferenceException: Object reference not set to an instance of an object
at System.Diagnostics.ExceptionExtensions.PrepareForRethrow (System.Exception exception) [0x00000] in <filename unknown>:0
at System.Concurrency.AsyncLock.Wait (System.Action action) [0x00000] in <filename unknown>:0
at System.Concurrency.Scheduler+<>c__DisplayClass4.<Schedule>b__0 () [0x00000] in <filename unknown>:0
at System.Concurrency.ImmediateScheduler.Schedule (System.Action action) [0x00000] in <filename unknown>:0
at System.Concurrency.Scheduler.Schedule (IScheduler scheduler, System.Action`1 action) [0x00000] in <filename unknown>:0
at System.ScheduledObserver`1[GetNotifyd.Superfeedr.FeedItem].EnsureActive () [0x00000] in <filename unknown>:0
at System.Collections.Generic.Subject`1[GetNotifyd.Superfeedr.FeedItem].OnNext (GetNotifyd.Superfeedr.FeedItem value) [0x00000] in <filename unknown>:0

在这种情况发生后,我仍然可以通过OnNext发布项目,但是我的订阅者不再接收任何信息。这是在mono2.10.1下运行的,使用的是MS的.NET 3.5反应性扩展DLL(也就是说,我不认为正在消亡的是mono代码)。当我在windows上尝试它时,我还没有看到这种情况发生,但是我没有在那里运行相同的负载。作为OnNext参数的项绝对不是null,所以这不是原因。

你知不知道这是什么原因,或者我如何恢复主题,或者我是否只需要创建一个新的主题,通知我的所有订阅者订阅该主题?

因为它看起来像一个Rx问题,我也在他们的论坛上报道过

更新:对于我使用的版本组合, 问题得到证实是一个Rx/mono问题。升级到最新的Rx (1.0.10605)解决了这个问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-26 14:57:06

您可能在Rx中碰到了一个竞赛条件错误。

注意,在此MSDN线程中,一个海报也有一个类似的问题:一个无法解释的NullReferenceException来自一个指向AsyncLock.Wait的堆栈跟踪。

现在,他的问题是由于ThreadStatic没有在Windows 7上工作而引起的。难道ThreadStatic在Mono上有细微的行为吗?

我建议通过Rx论坛向Rx团队报告此错误。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6482680

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档