gpt4 book ai didi

c# - Subject 停止发布项目

转载 作者:行者123 更新时间:2023-11-30 16:29:14 25 4
gpt4 key购买 nike

我有一个 Subject<T>我正在通过 OnNext 发布项目过了一会儿,在负载下,我得到了这个异常:

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 发布项目,但我的订户不再收到任何东西。这是在 mono 2.10.1 下运行的,使用来自 MS 的 .NET 3.5 Reactive Extensions DLL(即我不认为它是正在消亡的单声道代码)。我在 Windows 上尝试时没有看到这种情况发生,但我没有在那里运行相同的负载。作为 OnNext 参数的项目绝对不是 null,所以这不是原因。

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

因为它看起来像一个 Rx 问题,我也在 their forum 上报告了它

更新:issue was confirmed作为我使用的版本组合的 Rx/mono 问题。升级到最新的 Rx (1.0.10605) 解决了这个问题。

最佳答案

您可能遇到了 Rx 中的竞争条件错误。

通知this MSDN thread ,发帖人遇到了类似的问题:无法解释的 NullReferenceException 来自命中 AsyncLock.Wait 的堆栈跟踪。

现在,他的问题是由 [ThreadStatic] 在 Windows Phone 7 上不工作引起的。[ThreadStatic] 是否有可能在 Mono 上有细微的行为?

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

关于c# - Subject<T> 停止发布项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6482680/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com