OnRenderSurfaceBaseLoaded null异常。在Windows 10上的SciChart 4.2.3.10193和v5.1.0.11299上进行了测试。以下是相关帖子,但未在SciChart v5.1.0.11299上解决此问题
https://www.scichart.com/questions/question/nullreferenceexception-when-using-direct3d
Exception 1: Object reference not set to an instance of an object.
at SciChart.Drawing.DirectX.Context.D3D10.Direct3D10RenderSurface.OnRenderSurfaceBaseLoaded(Object sender, RoutedEventArgs e)
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
at System.Windows.BroadcastEventHelper.BroadcastEvent(DependencyObject root, RoutedEvent routedEvent)
at System.Windows.BroadcastEventHelper.BroadcastLoadedEvent(Object root) at MS.Internal.LoadedOrUnloadedOperation.DoWork()
at System.Windows.Media.MediaContext.FireLoadedPendingCallbacks() at System.Windows.Media.MediaContext.FireInvokeOnRenderCallbacks() at System.Windows.Media.MediaContext.RenderMessageHandlerCore(Object resizedCompositionTarget)
at System.Windows.Media.MediaContext.RenderMessageHandler(Object resizedCompositionTarget)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
我们所做的更改包括调用IRenderSurface.Dispose()以使用LinearGradient Brush释放源自CustomRenderableSeries的内存使用
if(scs.GetValue(SciChartSurfaceBase.RenderSurfaceProperty) is IRenderSurface renderSurface)
renderSurface.Dispose();
答案 0 :(得分:1)
根据SciChart's website,应该支持远程桌面而不会发生任何崩溃。
问:DirectX渲染器是否可以通过远程桌面工作?
答:我们使用D3DImage,这是一个允许共享DirectX的Microsoft控件 内容与WPF,避免空域问题,并允许快速互操作 在WPF的DirectX9和DirectX10渲染之间。
不幸的是D3DImage有一个bug,一个令人讨厌的bug。它不会工作 远程桌面,如果您的应用程序是.NET4.0!它会工作 .NET4.5及更高版本的远程桌面。
自SciChart v4以来,我们开发了SciChart的解决方法 DirectX现在可以通过远程桌面工作。这是自动的,没有 需要将更改应用于您的代码。
我建议如果问题仍然出现在最新版本(checking latest nightly from NuGet)中以打包代码以重现并将其发送到tech support。