Tag: 内存管理内存

我如何使用MemoryFailPoint?

MemoryFailPoint (MSDN) “ 在执行操作之前检查足够的内存资源。” 但它是如何实际使用的呢? MemoryFailPoint是否为我创建的下一个大对象自动保留了一些内存? 或者它只是检查内存是否是免费的,而不是保留它? 它是否检查物理内存,物理内存加页面文件,虚拟地址空间或其他完全? 我什么时候处理它? 我是否需要在实际创建需要大量内存的对象之前部署MemoryFailPoint ,还是必须在部署MemoryFailPoint之前创建对象? 例如 try { using (MemoryFailPoint mem = new MemoryFailPoint(500)) { // allocate big object here? } } catch (InsufficientMemoryException e) { // … } // or allocate big object here? // or allocate big object on another thread? 同一进程中的另一个线程是否可以窃取我用MemoryFailPoint保留的内存,或者MemoryFailPoint是否为当前线程专门保留内存? 如果没有丢弃MemoryFailPoint会发生什么? 一个不相关的MemoryFailPoint本身会消耗大量内存吗?