暂停执行直到给出响应

时间:2014-03-13 21:23:30

标签: c#

我有根据请求运行的脚本,并使用CodeDomProvider进行编译。这是一个例子:

var yes = SendYesNo();

if (yes)
    // Do something
else
    // Do something else

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

1 个答案:

答案 0 :(得分:1)

您可以使用返回参数的模态窗口。如果所需的输入更复杂,您可以使用标准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
    }
}

如果它只是一个Yes / No MessageBox,你可以参考: How do I create a message box with "Yes", "No" choices and a DialogResult?