我有以下代码,有时 ArchiveFiles() 需要更多时间来完成其执行。
当用户从上下文菜单中多次单击退出选项时,如果 ArchiveFiles() 花费更多时间,应用程序将无响应。当他再次单击退出选项时,如何显示等待消息?
private void exitToolStripMenuItem_Click(object sender, EventArgs e)
{
ArchiveFiles();
Application.Exit();
}
谢谢
巴斯卡
最佳答案
您可以使用 BackgroundWorker 。
使用 BackgroundWorker
,您将能够执行耗时的任务,例如您在另一个线程上执行的任务,这样 UI 就不会卡住。您将能够报告该任务的进度,然后报告它的完成情况并在完成后执行您需要的任何逻辑。
处理 BackgroundWorker.DoWork 事件以启动执行潜在耗时工作的操作。
处理 BackgroundWorker.ProgressChanged 事件以向用户报告异步操作的进度。
最后,处理 BackgroundWorker.RunWorkerCompleted 事件以实现您希望在任务完成后实现的任何逻辑。
请参阅以下内容:
BackgroundWorker Component Overview
C# BackgroundWorker Tutorial
关于c# - 应用程序退出时显示等待消息,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6150651/