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

本文关键字:处理 其他 代码 ShowDialog WaitDialogForm | 更新日期: 2023-09-27 18:34:38

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((,它可以正常工作,但如果用户在等待表单之外单击,这会产生不良行为。应用程序"变白",就像它停止响应一样,鼠标变为那个旋转的小圆圈图标。此外,对话框窗体显示的沙漏不会旋转。愚蠢的小细节,但看起来整个应用程序都崩溃了。

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

ShowDialog 根据设计,"阻止"代码,直到您关闭对话框。 这就是全部目的。

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