C# WaitDialogForm.ShowDialog()不处理其他代码

C# WaitDialogForm.ShowDialog()不处理其他代码,c#,devexpress,C#,Devexpress,对于DevExpress来说,这是一个全新的概念,我的公司一直在使用9.3 我有一段非常小的代码: wait = new DevExpress.Utils.WaitDialogForm("Please wait...", "Performing SVN check"); wait.Visible = false; wait.ShowDialog(); ParseSVNResults(CheckSVN()); wai

对于DevExpress来说,这是一个全新的概念,我的公司一直在使用9.3

我有一段非常小的代码:

        wait = new DevExpress.Utils.WaitDialogForm("Please wait...", "Performing SVN check");
        wait.Visible = false;

        wait.ShowDialog();
        ParseSVNResults(CheckSVN());
        wait.Close();
我的等待对话框显示,但代码永远不会继续。我在ParseSVNResults上设置了一个断点,当我运行代码时,它会到达该行


如果我只调用Show()而不是ShowDialog(),它可以正常工作,但如果用户在等待窗体之外单击,则会出现不良行为。应用程序“变白”,好像它停止响应,鼠标变为旋转的小圆圈图标。对话框窗体显示的计时器也不会旋转。愚蠢的小细节,但看起来整个应用程序对最终用户崩溃了。

ShowDialog
,按照设计,“阻止”代码,直到您关闭对话框。这就是全部目的


Show()
导致所有内容变白的原因是您的工作发生在UI线程中。正确的处理方法是将您的工作(
ParseSVNResults
)移动到后台线程中,通过类似于
BackgroundWorker
Task

的方式。这就是我们所说的,也称为
启用模式的同步信号量
,或MESS。谢谢,我将在BackgroundWorker类中检查它。NET 3.5,因此任务不是一个选项。