我们已经从RX1.1.11111.1移民到RX 2.0.20823.2。现在,我们遇到了Eventloopscheduler的罕见例外:
an Unhandled Exception occured in non UI thread.
System.NullReferenceException: Object reference not set to an instance of an object.
at System.Reactive.Concurrency.EventLoopScheduler.Run()
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
有人猜测有什么问题?是因为我们没有使用OnError代表,而我们的一种方法失败了?
这是代码的要旨:
eventloopscheduler m_scheduler = new Eventloopscheduler();
。。。
m_receivedmessagehandler.statusreceived.observeon(m_scheduler) 。
sendall内部的异常会导致此行为?
您需要将OnError处理程序放入订阅中,否则该应用将崩溃。如果您不关心错误,那就吃掉它,不要做任何事情。我曾经有相同的错误,所以我做过
var subscription = observable.Subscribe(
onNext: (v) => DoSomethingWith(v),
onError: (Exception e) => {
// Just eat and log the exception.
Debug.WriteLine(e.ToString());
}
);
当我不在乎例外时。最好明确忽略错误和/或在某个地方记录在某个问题的地方。