我为我的网络应用程序创建一个注册页面。该应用要求用户成功注册新帐户后,页面会显示“注册成功”的消息,然后等待5秒才切换到登录页面。我用了Thread.Sleep(5000)
。它等待 5 秒,但不显示消息。谁能帮我?
void AccountServiceRegisterCompleted(object sender, RegisterCompletedEventArgs e)
{
if (e.Result)
{
lblMessage.Text = "Register successfully";
Thread.Sleep(5000);
this.SwitchPage(new Login());
}
else
{
...
}
}
Thread.Sleep(5000)
仅将线程挂起 5 秒 - 在此期间不会执行该线程上的任何代码。所以没有消息或其他任何东西。
如果它是一个 ASP.NET 应用程序,客户端不知道服务器上发生了什么,并等待服务器的响应 5 秒。您必须手动实现此逻辑。例如,使用 JavaScript:
setTimeout(function(){location.href = 'test.aspx';}, 5000);
或通过添加 HTTP 标头:
Response.AddHeader("REFRESH","5;URL=test.aspx");
or meta
tag:
<meta http-equiv="refresh" content="5; url=test.aspx" />
see 更多信息 http://en.wikipedia.org/wiki/URL_redirection#Refresh_Meta_tag_and_HTTP_refresh_header.
如果它是桌面应用程序,您可以使用类似的东西timers http://msdn.microsoft.com/en-us/library/system.threading.timer.aspx。并且永远不要让主线程(UI 线程)因 Thread.Sleep 之类的东西而挂起。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)