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