2

Windows リモート デスクトップを使用して接続すると、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 ブラシを使用して CustomRenderableSeries から発生したメモリ使用量を解放することが含まれます。

if(scs.GetValue(SciChartSurfaceBase.RenderSurfaceProperty) is IRenderSurface renderSurface) renderSurface.Dispose();

4

1 に答える 1

1

SciChart の Web サイトによると、リモート デスクトップはクラッシュすることなくサポートされるはずです。

Q: DirectX レンダラーはリモート デスクトップで動作しますか?

A: DirectX コンテンツを WPF と共有できるようにする Microsoft コントロールである D3DImage を使用して、空域の問題を回避し、WPF の DirectX9 と DirectX10 レンダリング間の高速相互運用を可能にします。

残念ながら、D3DImage には厄介なバグがあります。アプリケーションが .NET4.0 の場合、リモート デスクトップでは機能しません。.NET4.5 以降のリモート デスクトップで動作します。

SciChart v4 以降、SciChart DirectX がリモート デスクトップで動作する回避策を開発しました。これは自動的に行われるため、コードに変更を加える必要はありません。

問題が最新バージョン ( NuGet からの最新の夜間チェック) で引き続き発生する場合は、コードをパッケージ化して再現し、技術サポートに送信することをお勧めします。

于 2018-05-16T13:14:16.367 に答える