没有足够的存储空间来完成此操作 - 程序存储内存?

Gra*_*ton 4 .net compact-framework windows-mobile-6

我已经获得了用.Net CF 3.5编写的Windows Mobile应用程序来修复,其中一个问题与存储有关.

已经出现了几次"没有足够的存储空间可用于完成此操作"的消息 - 它已记录在SQL CE数据库中,并且始终在数据访问期间发生(但不是相同的数据访问位).

我有点困惑的是它是指程序存储器(例如RAM)还是存储存储器(例如永久存储器).它似乎是存储内存,但设备似乎有很多免费.虽然存在一些OutOfMemoryExceptions,但这些看起来与此问题完全无关(因为与图像相关的问题会在不同的时间发生).

我们将SQL CE 3.5与单个连接一起使用,该连接与应用程序一起存储在设备上(而不是存储卡).该设备是运行Windows Mobile 6.1的Motorola MC75.

有什么想法吗?

Han*_*ant 8

这是一个低级Windows错误,代码14,ERROR_OUTOFMEMORY.错误消息没有提到"内存",因为它并不总是由内存不足引起的.最典型的触发器是超出其内核资源配额的程序.像10,000个窗口手柄一样,还有很多其他的.那是桌面版btw,我不怀疑它在Windows Mobile上要低得多.

嗯,该程序是小猪.触发此错误的一种可能方法是不对实现IDisposable的类的对象调用Dispose().这将消耗在垃圾收集器和终结器线程运行之前不会释放的内核资源.这可能需要一段时间.SQL CE类肯定是候选者.如果您不知道资源泄漏或过度使用的来源,那么请投资一个适用于CF的分析器.