我需要能够在等待用户输入时暂停方法。
我尝试使用while (true)
循环检查是否设置了布尔值,表明操作已完成,但正如我预测的那样,它使应用程序无响应。
如何在设置变量后暂停和恢复方法,而无需再次调用方法,也不会使整个应用程序无响应。
这基本上是程序的作用
openFile method called
openFile method determines whether file has a password
if it does, display an alert to the user requesting the password
这是问题,在输入密码之前暂停该方法。
任何帮助表示感谢。
答案 0 :(得分:2)
为什么要暂停该方法?你可以使用一个代表。您将显示警报视图并注册警报视图的代理。委托注册didDismissAlertViewWithButtonIndex方法并根据按钮执行操作。如果密码输入正确并且点按了OKAY按钮,则可以继续进行处理。
答案 1 :(得分:0)
你做不到。您需要将其拆分为两种方法,一种是进行初始检查,然后提示输入密码,另一种是使用密码来获取文件。
答案 2 :(得分:0)
您可能需要以下内容。
class Program
{
static void Main(string[] args)
{
}
void YourFileReadMethod()
{
string password = string.Empty;
bool isPasswordProtected = CheckFileIsPasswordProtected();
if (isPasswordProtected)
{
Form passwordFrm = new Form();//This is your password dialogue
DialogResult hasEntered = DialogResult.No;
do
{
hasEntered = passwordFrm.ShowDialog();
password = (hasEntered == DialogResult.Yes) ?
passwordFrm.passwordTxt//password property/control value;
: string.Empty;
} while (hasEntered != DialogResult.Yes);
}
ReadFileMethod(password);
}
private void ReadFileMethod(string password)
{
//use the password value to open file if not String.Empty
}
bool CheckFileIsPasswordProtected()
{
//your logic which decides whether the file is password protected or not
//return true if password is required to open the file
return true;
}
}