暂停执行,直到给出响应

本文关键字:响应 执行 暂停 | 更新日期: 2023-09-27 17:50:04

我有脚本运行的请求,并使用CodeDomProvider编译。下面是一个例子:

var yes = SendYesNo();
if (yes)
    // Do something
else
    // Do something else

。SendYesNo显示一个包含用户输入的框。我想在这一行暂停脚本,直到设置了响应。然后,获取响应并将其应用于变量并继续执行。到目前为止,我已经使用了await/async,但我不喜欢这个想法。还有其他可能吗?

暂停执行,直到给出响应

您可以使用返回参数的模态窗口。如果需要的输入更复杂,您可以使用标准的MessageBox或自定义的Form。

类似:

public class SomeForm : Form
{
    public bool yesNo
    {
        get
        {
            return yesNo;
        }
        set
        {
        //set value according to your logic
        }
    }
}

,在你的主表单中这样命名:

using (var form = new SomeForm())
{
    if (form.ShowDialog() == DialogResult.OK)
    {
        var yesNo = form.yesNo;
        if (yes)
        // Do something
        else
        // Do something else
    }
}

如果它只是一个是/否消息框,你可以参考:如何创建带有"是"、"否"的消息框?选项和对话结果?