1

DevExpress 的新手,我的公司一直在使用 9.3

我有这个非常小的代码片段:

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

        wait.ShowDialog();
        ParseSVNResults(CheckSVN());
        wait.Close();

我的 WaitDialog 显示,但代码永远不会继续。我在 ParseSVNResults 上放了一个断点,当我运行代码时,它会到达该行。

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

4

1 回答 1

3

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

导致一切变白的原因Show()是您的工作发生在 UI 线程中。处理此问题的正确方法是将您的工作 ( ParseSVNResults) 通过类似BackgroundWorkerTask.

于 2013-10-08T17:56:04.493 回答