我正在开发 Windows 移动应用程序。有一个需要几秒钟才能执行的 web 服务调用。我试图在它运行之前显示消息。
lblSearchMessage.Text = "Please wait...";
var info = proxy.FindProfiles();
lblSearchMessage.Text = "Completed";
我没有看到“请稍候”消息的问题。当它运行时,标签仍然清晰,直到请求完成,我最终只看到“完成”消息。
我正在开发 Windows 移动应用程序。有一个需要几秒钟才能执行的 web 服务调用。我试图在它运行之前显示消息。
lblSearchMessage.Text = "Please wait...";
var info = proxy.FindProfiles();
lblSearchMessage.Text = "Completed";
我没有看到“请稍候”消息的问题。当它运行时,标签仍然清晰,直到请求完成,我最终只看到“完成”消息。
试试这样...
lblSearchMessage.Text = "Please wait...";
Application.DoEvents();
var info = proxy.FindProfiles();
lblSearchMessage.Text = "Completed";
您应该使用C# 的BackgroundWorker
or Task
orawait
功能(取决于您使用的 dot net 框架版本)将长时间运行的任务委托给后台线程。在主线程中更新 UI,它会立即反映更改。您不应该在主线程中执行长时间运行的任务,因为它会阻塞 UI 并给用户留下不好的印象和体验。
看看BackgroundWorker类。它还有一个简单的教程,可以清楚地说明如何在应用程序中使用它。
在启动后台工作人员之前
lblSearchMessage.Text = "Please wait...";
一旦后台工作完成
lblSearchMessage.Text = "Completed";