1

我正在尝试制作一个文本阅读器,但我发现在滚动大型文档时,每当纹理内存达到 15000 左右时,应用程序就会以代码 -2147220978 (0x8004020e) 退出。

这是什么意思?有什么解决办法吗?我真的需要能够阅读大文本文档。

4

2 回答 2

7

8 表示“错误”。“004”表示“此错误特定于对象在失败时使用的接口”。“020e”的意思是……嗯,它的意思是该界面的作者想要表达的意思。(所有高于 0200 的错误代码都是作者定义的。)

这些是最难追踪的错误,因为它们的含义完全取决于失败代码的作者的意图;没有通用的标准。某些子系统(可能由第三方开发)出现故障。如果您能弄清楚那是什么子系统,那么您可以询问该子系统的制造商他们的错误号 020e 是什么意思。

于 2013-01-28T16:37:01.183 回答
2

你能分享最小和相关的重现代码吗?只需一个 XAML 片段和一个 C# 片段就足够了。

从您所说的来看,它实际上可能会使 GPU 与表面过载,直到应用程序崩溃。它不应该发生,所以我不确定这是真正的原因。

同时,您是否尝试过虚拟化您的 ItemsControl?如果您使用的是 ListBox,您是否尝试过切换到新的 LongListSelector?如果仅切换到 LongListSelector 还不够,请尝试使用ItemRealized并添加一些预取逻辑。如果这不起作用,您可能必须创建自己的虚拟化逻辑,方法是在模板消失后手动从可视化树中删除模板,或者创建一个全新的第 3 方虚拟化自定义控件。也许第 3 方控制供应商之一有一些可以在这里工作的东西。

于 2013-01-28T18:45:14.013 回答