C# Silverlight 4应用程序冻结而不引发任何异常

C# Silverlight 4应用程序冻结而不引发任何异常,c#,silverlight,silverlight-4.0,ria,C#,Silverlight,Silverlight 4.0,Ria,我正在开发Silverlight 4 RIA应用程序。有一个存储数据的DataGrid和两个按钮:添加新项和删除项。在为第二次创建一个新项目后,应用程序会像这样冻结-我将在下面解释奇怪的行为 创建新项目的场景如下所示: 单击后,将显示子窗口。正在删除对parrent页上使用的域数据源的引用 传递给构造函数中的子窗口 用户选择一个文件 该文件将被发送到web服务。作为响应,web服务从该文件返回一些数据 正在创建新数据对象并将其插入域数据源 子窗口仅在调用两次时才会导致整个应用程序冻结,但第一次调

我正在开发Silverlight 4 RIA应用程序。有一个存储数据的
DataGrid
和两个按钮:添加新项和删除项。在为第二次创建一个新项目后,应用程序会像这样冻结-我将在下面解释奇怪的行为

创建新项目的场景如下所示:

  • 单击后,将显示子窗口。正在删除对parrent页上使用的域数据源的引用 传递给构造函数中的子窗口
  • 用户选择一个文件
  • 该文件将被发送到web服务。作为响应,web服务从该文件返回一些数据
  • 正在创建新数据对象并将其插入域数据源
  • 子窗口仅在调用两次时才会导致整个应用程序冻结,但第一次调用需要创建对象。我可以反复打开和关闭子窗口,一切都会正常工作,直到出现以下顺序:open.create->open.close/open.create。我试图用VS工具(alt ctrl e)跟踪所有异常,但没有

    上的断点

    private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
    
    也没有显示任何内容。有什么想法吗


    删除以下内容,一切都会好起来

        private void ChildWindow_Closed(object sender, EventArgs e)
        {
            this.DialogResult = false;
        }
    
    更详细地说,ChildWindow_Closed是首先设置DialogResult的结果。
    通过重新设置,意外的事情会发生

    在你帮我解决这个问题之后,我做了更多的研究。似乎是SL4的错误。 这也应该有所帮助。话题


    WS在步骤3中代表什么?我真的不明白你怎么叫孩子窗口两次。您能对此进行评估吗?WS代表Web服务。通过两次调用子窗口,我的意思是:打开一个窗口(通过单击按钮),创建一个对象(填写表单),确认(这也会关闭窗口),然后再次单击按钮,窗口打开。应用程序一直工作到子窗口关闭为止(无论是否创建了另一个对象)。您是否尝试过定期暂停应用程序,检查线程窗口?是否尝试添加一些跟踪语句?检查任务管理器以查看是否正在使用CPU?我瞥了一眼代码,什么也没跳出来,但这可能有助于了解它是否冻结在等待某个东西的意义上,或者它似乎正在旋转通过某个东西。非常感谢您的帮助!我在想那件事。删除这个。DialogResult修复了问题:)奇怪的是,当你在VS2010中添加一个新的子窗口时,它会自动添加两个返回true或false的事件,所以我反对它的标准。这可能是我最不怀疑的事情了。
    protected override void OnClosed(EventArgs e)
        {
            base.OnClosed(e);
            Application.Current.RootVisual.SetValue(Control.IsEnabledProperty, true);
        }