垃圾收集不会释放Silverlight中的内存

时间:2013-08-22 13:34:45

标签: c# wcf silverlight garbage-collection

我担心我的应用程序,因为我使用它的时间越长,它消耗的内存就越多。我正在使用支持Silverlight的WCF服务从数据库中检索数据。 让我解释一下这个应用。在frame中有DataGrid和MainPage。用户输入一些数据,单击Search按钮后,服务从数据库获取数据并填充DataGrid。在此之后,用户可以从ViewModel中选择行和应用程序更改框架的URI,如下所示:

// Sending selectedId as Query string
FrameURI = new Uri(
                   string.Format("/Views/PersonDetails.xaml?SelectedID={0}",
                   SelectedID,
                   UriKind.Relative);

我在OnNavigatedTo事件中获取具有给定ID的人的数据,并调用返回Person类型的对象的方法:

    _id = this.NavigationContext.QueryString["SelectedID"];

    if (_id != "")
    {
        Uri address = new Uri(Application.Current.Host.Source, "../UserServiceName.svc"); 
        UserServiceNameClient client = new UserServiceNameClient("CustomBinding_UserServiceName", address.AbsolutePath);

        client.GetPersonByIDCompleted += (sender, event) =>
            {
                   if (e.Result.Name != null)
                   {
                         LayoutRoot.DataContext = (Person)e.Result;
                   }
            };
        client.GetPersonByIDAsync(_id);
    }

但问题出在这里。从DataGrid中选择新的id之后,GC似乎没有开始。在DataGrid中更改选定的行后,应用程序的内存不断增长。故事板/动画变得迟钝......

我已经在网上看了一些帖子,其中一些人告诉我,这是关于event handlers。我尝试了一些事情,但没有帮助。

感谢。

0 个答案:

没有答案