在长时间操作前显示消息

本文关键字:显示 消息 操作 长时间 | 更新日期: 2023-09-27 18:17:53

我在windows移动应用程序工作。对webservice的调用需要几秒钟才能执行。我想在消息运行前显示它。

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

我没有看到"请等待"消息的问题。当它运行时,标签仍然清晰,直到请求完成,我最终只看到"completed"消息。

在长时间操作前显示消息

试试这样…

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

你应该使用c#的BackgroundWorkerTaskawait特性(取决于你使用的是哪个。net框架版本)来将长时间运行的任务委托给后台线程。在主线程中更新UI,它会立即反映变化。你不应该在主线程中执行长时间运行的任务,因为它会阻塞UI,给用户留下不好的印象和体验。

看看BackgroundWorker类。它还有一个简单的教程,将使您清楚如何在应用程序中使用它。

在启动后台worker之前执行

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

后台工作完成后,执行

lblSearchMessage.Text = "Completed";