【问题标题】:"large" dataset crashes Gridview when Scrolling. Win32 error“大”数据集在滚动时使 Gridview 崩溃。 Win32 错误
【发布时间】:2025-12-27 06:35:11
【问题描述】:

我不断遇到一个开始激怒我的错误,我不知道如何解决它。 我有一个分组的网格视图,其中大约 30 个组可能包含 500 - 1000 个详细信息项目。 (全部在 C# 中完成)当用鼠标抓住滚动条并快速浏览我(迟早)得到的列表时,一个

myapp.exe 中 0x0fda84de 处未处理的异常:0xC0000005:访问 违规读取位置0x006d006f.

调试器会将我带到一个对我来说是象形文字的程序集页面。 我正在从 api 调用填充 gridview 到另一台服务器,这确实对我提供列表的可观察集合进行了相当大的更改,但是这一切都是在我得到异常之前加载的

我不知道这是否只是某种内存不足或错误等。我知道这一点:

blog post

但这似乎不符合要求;我没有使用缓存,也不会在导航时发生。我也不喜欢内联组标题。大量的应用程序(音乐、Netflix 等)。使用分组的gridview,不要遇到这个问题。 我在这件长袍的尽头。

如果我知道错误是什么,我可以更好地追踪源头!

谢谢大家,

【问题讨论】:

  • 如果您使用分页或较少的行数会怎样?重要吗?

标签: c# windows-8 windows-store-apps winrt-xaml


【解决方案1】:

我不确定您使用的是哪种 gridview,但如果您仅在行数很大而不是行数较少时遇到这种情况,您应该考虑不使用 .net gridviews,因为它们的性能很慢。

快速的 google 搜索将为您提供所需的每种技术的大量网格。

如果您正在使用 .net “datagridview”,请尝试在您的项目中使用此 dll,我知道它对我有很大帮助,并且我努力寻找它...

http://speedy.sh/dHhX4/SpeedUpDGV.rar

在您将 dll 添加到您的引用后,只需像这样使用它:

YourGridviewName.SpeedUpThisGridView(true); 

您还应该考虑以某种异步方式分页或发送信息,然后重新加载...

但这只是在案件处理大量信息的情况下

希望我能帮上忙。

【讨论】: