0

我正在开发 Windows 移动应用程序。有一个需要几秒钟才能执行的 web 服务调用。我试图在它运行之前显示消息。

lblSearchMessage.Text = "Please wait...";
var info = proxy.FindProfiles();
lblSearchMessage.Text = "Completed";

我没有看到“请稍候”消息的问题。当它运行时,标签仍然清晰,直到请求完成,我最终只看到“完成”消息。

4

2 回答 2

2

试试这样...

lblSearchMessage.Text = "Please wait...";
Application.DoEvents(); 
var info = proxy.FindProfiles();
lblSearchMessage.Text = "Completed";
于 2013-06-11T06:13:09.067 回答
1

您应该使用C# 的BackgroundWorkeror Taskorawait功能(取决于您使用的 dot net 框架版本)将长时间运行的任务委托给后台线程。在主线程中更新 UI,它会立即反映更改。您不应该在主线程中执行长时间运行的任务,因为它会阻塞 UI 并给用户留下不好的印象和体验。

看看BackgroundWorker类。它还有一个简单的教程,可以清楚地说明如何在应用程序中使用它。

在启动后台工作人员之前

lblSearchMessage.Text = "Please wait...";

一旦后台工作完成

lblSearchMessage.Text = "Completed";

于 2013-06-11T06:03:29.150 回答