是 - 否消息框在工作线程中出现得太早

本文关键字:太早 线程 工作 消息 | 更新日期: 2023-09-27 18:31:57

我的程序需要向用户显示一个对话框,提示用户选择保存文件夹,然后显示"是-否"按钮消息框,要求用户确认是否要继续。

这是我的代码:

/* Wait until user has selected a save folder */
do { } while (sSaveFolder == null);
/* Cancel operation if user clicks on cancel when in folder selection window */
if (sSaveFolder == "<cancel>")
{
    worker.ReportProgress(0, "Operation Cancelled'r'n'r'n**********'r'n");
    return;
}
/* Check for confirmation */
if (MessageBox.Show("Please confirm whether or not to continue.", "Do you wish to continue?", MessageBoxButtons.YesNo) == DialogResult.No)
{
    worker.ReportProgress(0, "Operation Cancelled'r'n'r'n**********'r'n");
    return;
}

我遇到的问题是我可以运行一次,单击"否",工作线程终止。但是,如果我单击按钮再次运行工作线程,我会在保存文件夹对话框的同时弹出消息框 - 出于显而易见的原因,这是有问题的。那么有谁知道为什么会发生这种情况以及如何解决呢?

通过将消息框移动到保存文件夹对话框之前,我找到了解决特定问题的方法,但是,由于这是一个奇怪的问题,我想我会在将来再次询问它。

提前致谢:)

是 - 否消息框在工作线程中出现得太早

我在您的代码中看不到任何将重置 sSaveFolder 值的位置。

由于您正在重用相同的对象,因此可能仍会设置以前的值,因此...而完成速度非常快,因此将显示消息框。

在显示对话框之前重置 sSaveFolder 的值应该可以解决您的问题。