ArgumentNullException崩溃了我的wpf应用程序

时间:2016-03-24 12:00:37

标签: c# wpf

我有一个WPF应用程序(Dotnet V4.5),它运行平稳3-4个小时,突然崩溃了。 我发现了一个异常,上面写着“Value不能为null;参数名称密钥”。 我的堆栈跟踪如下:

  

System.Collections.Dictionary'2.FindEntry(TKey key)at System.Collections.Generic.Dictionary'2.TryGetValue(TKey key,   TValue&安培;价值)   System.Windows.Controls.DataGridItemAttachedStorage.TryGetValue(对象   item,DependencyProperty属性,Object&价值)   System.Windows.Controls.DataGridRow.RestoreAttachedItemValue(DependencyObject的   objectWithProperty,DependencyProperty属性)at   System.Windows.Controls.DataGridRow.SyncProperties(布尔   forcePrepareCells)at   System.Windows.Controls.DataGridRow.PrepareRow(Object item,DataGrid   拥有DataGrid)   System.Windows.Controls.DataGrid.PrepareContainerForItemOverride(DependencyObject的   元素,对象项目)   System.Windows.Controls.ItemsControl.MS.Internal.Controls.IGeneratorHost.PrepareItemContainer(DependencyObject的   容器,对象项目)at   System.Windows.Controls.VirtualizingStackPanel.InsertContainer(的Int32   childIndex,UIElement容器,Boolean isRecycled)at   System.Windows.Controls.VirtualizingStackPanel.AddContainerFromGenerator(的Int32   childIndex,UIElement child,BooleannewRealized,Boolean   isBeforeViewport)at   System.Windows.Controls.VirtualizingStackPanel.MeasureChild(IItemContainerGenerator&安培;   发电机,IContainItemStorage& itemStorageProvider,   IContainItemStorage&安培; parentItemStorageProvider,Object& parentItem,   布尔和放大器; hasUniformOrAverageContainerSizeBeenSet,Double&   computedUniformOrAverageContainerSize,Double&   computedUniformOrAverageContainerPixelSize,Boolean&   computedAreContainersUniformlySized,IList& items,Object&项目,   IList的&安培;儿童,Int32& childIndex,Boolean& visualOrderChanged,   布尔和放大器; isHorizo​​ntal,Size& childConstraint,Rect&视,   VirtualizationCacheLength&安培; cacheSize,VirtualizationCacheLengthUnit&   cacheUnit,Boolean& foundFirstItemInViewport,Double&   firstItemInViewportOffset,Size& stackPixelSize,Size&   stackPixelSizeInViewport,Size& stackPixelSizeInCacheBeforeViewport,   大小和放大器; stackPixelSizeInCacheAfterViewport,Size& stackLogicalSize,   大小和放大器; stackLogicalSizeInViewport,Size&   stackLogicalSizeInCacheBeforeViewport,Size&   stackLogicalSizeInCacheAfterViewport,Boolean&   mustDisableVirtualization,Boolean isBeforeFirstItem,Boolean   isAfterFirstItem,Boolean isAfterLastItem,Boolean skipActualMeasure,   Boolean skipGeneration,Boolean&   hasBringIntoViewContainerBeenMeasured,Boolean&   hasVirtualizingChildren)at   System.Windows.Controls.VirtualizingStackPanel.MeasureOverrideImpl(大小   约束,Nullable'1& lastPageSafeOffset,List'1&   previousMeasuredOffsets,Nullable`1& lastPagePixelSize,布尔值   重新测量   System.Windows.Controls.VirtualizingStackPanel.MeasureOverride(大小   约束)   System.Windows.Controls.Primitives.DataGridRowsPresenter.MeasureOverride(大小   在System.Windows.FrameworkElement.MeasureCore(Size。)的约束   System.Windows.UIElement.Measure(Size。的availableSize)   availableSize)at   System.Windows.ContextLayoutManager.UpdateLayout()at   System.Windows.ContextLayoutManager.UpdateLayoutCallback(Object arg)
  在System.Windows.Media.MediaContext.FireInvokeOnRenderCallbacks()
  在System.Windows.Media.MediaContext.RenderMessageHandlerCore(Object   resizedCompositionTarget)at   System.Windows.Media.MediaContext.RenderMessageHandler(对象   resizedCompositionTarget)at   System.Windows.Threading.ExceptionWrapper.InternalRealCall(代表   回调,对象args,Int32 numArgs)at   System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source,   委托回调,Object args,Int32 numArgs,Delegate catchHandler)

我发现一个奇怪的事情是应用程序在某些机器上没有崩溃,但它在其他一些机器上崩溃。所以我把这两个文件转储,并注意到“PresentationCore.ni.dll”的版本是4.6.81.0并且CLR版本的系统是4.6.100.0这是关于我的应用程序连续7小时连续运行时没有崩溃的机器。

在崩溃的机器中,“PresentationCore.ni.dll”的版本为4.6.1055.0,CLR版本的系统为4.6.1055.0。

有人可以帮助我解决我的情况吗?我觉得我在这里错过了一些不了解的东西。

0 个答案:

没有答案