2

使用 Windows 远程桌面连接时出现 OnRenderSurfaceBaseLoaded 空异常。在 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();

4

1 回答 1

1

根据SciChart 的网站,应该支持远程桌面而不会出现任何崩溃。

问:DirectX 渲染器是否在远程桌面上工作?

答:我们使用 D3DImage,这是一个 Microsoft 控件,允许与 WPF 共享 DirectX 内容,避免空域问题并允许 WPF 的 DirectX9 和 DirectX10 渲染之间快速互操作。

不幸的是,D3DImage 有一个错误,一个令人讨厌的错误。如果您的应用程序是 .NET4.0,它将无法在远程桌面上运行!它将在 .NET4.5 及更高版本的远程桌面上运行。

自 SciChart v4 以来,我们开发了一种解决方法,让 SciChart DirectX 现在可以在远程桌面上运行。这是自动的,无需对您的代码应用任何更改。

我会建议如果问题仍然出现在最新版本中(从 NuGet 每晚检查最新版本)打包代码以重现并将其发送给技术支持

于 2018-05-16T13:14:16.367 回答