0

问题:我有一个提供者类 MyProvider 将 DataContext 实例传递给其他处理程序。MyProvider 保持打开 DataContext 实例以供重用。由于这种行为会消耗大量内存,因此我希望 MyProvider 在每个请求上创建一个 DataContext 实例并在之后处理它。由于有许多处理程序通过 Getter 同时请求一个 DataContext,我无法确定何时处置 DataContext 实例。

我想没有什么魔术可以告诉 MyProvider.Getter,什么时候不再使用返回的实例?

谢谢

4

1 回答 1

0

我选择CreateDataContext()在我的“MyProvider”类中创建一个,并让调用者在后续请求中提供它:

using (DataContext context = provider.CreateDataContext())
{
    provider.FirstMethod(context, ...);
    provider.SecondMethod(context, ...);
}

这样,调用者可以随心所欲地挂在上下文上,但它仍然可以在不再需要时立即释放。

我不知道这是否是最好的解决方案,但它确实解决了我的问题,即这种上下文提供对有限资源的访问。

于 2013-09-29T12:35:44.230 回答