我有一段代码在GUI线程上执行了一段时间(为了简化,我们假设在Button_Click事件中)。
当方法开始时,我想显示一条消息“请稍候”,然后继续工作。工作完成后,我将隐藏信息并继续。
我知道我可以用BackgroundWorker
(或任何其他线程相关的)来做到这一点,但我希望已经完成了类似的事情:
MBox.Show("Please wait...");
//do my work...
MBox.Hide();
答案 0 :(得分:3)
如果你有一个长时间运行的进程,你不应该在UI线程中这样做。 BackgoundWorker
有什么问题?那班很棒!如果这是一个WinForms应用程序,我建议您使用它。
答案 1 :(得分:1)
如果您使用.Net 4,则可以运行Task
与后台工作程序一起工作,否则您可以执行线程,但它们不应该在同一个线程中。
答案 2 :(得分:0)
您可以创建自己的表单来执行此操作。如果用户期望等待或需要等待,那么让用户等待就没有任何本质上的恶意。我们有正常工作流程需要短暂等待的应用程序。将它放在后台线程中对用户没有帮助,因为他们仍然需要等待操作完成才能完成任何其他操作。