我希望我的程序中的一个序列暂时休息一下,然后继续下一个操作。像这样:
string s = HD.Text;
if (s.Contains("php")||s.Contains("echo"))
{
HD.Text = "this okay ?";
MessageBox.Show("Its Php ?","Gus");
}
我试过了:
if (s.Contains("php")||s.Contains("echo"))
{
HD.Text = "this php ?";
Task.Delay(TimeSpan.FromSeconds(10));
MessageBox.Show("Its Php ?","Guss");
}
但它不起作用。它抛出以下例外:
Cannot find type System.Resources.ResourceSet in module mscorlib.dll
答案 0 :(得分:2)
Task.Delay
返回Task
,将在给定的时间段后完成。如果你忽略了那个任务,那么你实际上什么都没做。 开始任务基本上没有时间。
如果await
从Task
返回Delay
,则其余代码将在Task
实际完成之后才会运行。
答案 1 :(得分:-1)
正如Servy所说,你需要 等待 这样的任务:
解决方案1:
public async Task Do()
{
if (s.Contains("php")||s.Contains("echo"))
{
HD.Text = "this php ?";
await Task.Delay(TimeSpan.FromSeconds(10));
MessageBox.Show("Its Php ?","Guss");
}
}
或 等待 这样的任务。
解决方案2:
public void Do()
{
if (s.Contains("php")||s.Contains("echo"))
{
HD.Text = "this php ?";
Task.Delay(TimeSpan.FromSeconds(10)).Wait();
MessageBox.Show("Its Php ?","Guss");
}
}