0

我在静态方法中有以下代码,用于带有 wcf ria 服务的 silverlight 应用程序:

public static void mymethod(){
DomainContext context = new DomainContext();
var q = context.GetMyEntitiesQuery().Where(x => x.Name == name );
context.Load<MyEntity>(q, LoadBehavior.RefreshCurrent,
  (p) =>
  {
  if (!p.HasError)
    {
     //......     
    }

  }, null);
}

它工作正常。但是每次我调用这个方法时,浏览器进程的内存会增加大约3M,并且永远不会释放。

这种情况下如何释放内存?

4

1 回答 1

0

您应该尽可能少的 DomainContext 实例。也许从调用者传递上下文

Thing.mymethod(context);

或保留一个静态实例

public static class Thing
{
    DomainContext _Context = new DomainContext();

    public static void mymethod()
    {
        var q = _context.GetMyEntitiesQuery().Where(x => x.Name == name );
        ...
    }
}

您创建的每个实例都可能存在并造成内存泄漏。

于 2012-09-28T21:23:12.537 回答