长时间操作前显示消息

时间:2013-06-11 05:52:05

标签: c# winforms web-services label

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

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

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

2 个答案:

答案 0 :(得分:1)

您应该使用C#的BackgroundWorkerTaskawait功能(取决于您使用的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";