【发布时间】:2014-09-15 12:47:28
【问题描述】:
我确实有一个操作必须作为一个整体可靠地执行或根本不执行。
- 目标只是保持某些内存中管理的共享状态的一致性。
- 这些状态包含在应用程序域中。它们在此域之外不可见。
- 因此,当域或进程被拆除时,我不必做出反应。
- 我正在编写一个类库,用户可以从任何地方调用我的代码。但是我的代码不调用任何用户代码,甚至不调用虚拟方法。
- 可以托管 CLR。
据我了解,我确实不需要需要受限执行区域 (CER),因为:
- 只有臭名昭著的
OutOfMemoryException、ThreadAbortException和StackOverflowException才需要CER。 - 我的代码没有进行任何分配,所以我不关心 OutOfMemory(无论如何分配不能在 CER 内完成)。
- 如果发生堆栈溢出,进程将被拆除(或在某些托管场景中的域)。
- 线程中止已经延迟到 finally 块结束,而我的代码已经在一个块内。
我在这些方面是否正确?您是否看到我需要 CER 的其他原因?
【问题讨论】:
标签: c# .net vb.net reliability cer