
It’s not nice to leave people hanging.
Display an indicator that shows actual progress or at least that progress is being made.
Your solution is doing something for longer than a few hundred milliseconds.
Progress indicators are the digital version of holding up your finger while you finish chewing before responding to a question. You want to let people know that you heard them and that you’ll get them what they’re after as soon as you can. This is why it’s important to show them, even just after a short time.
People get antsy real quick when it comes to computers, especially. They fear the unknown more than anything, and anxiety can build quickly when they don’t know that something is going on, what is going on, how long it will take, and are unable to take control of their circumstances.
So, more advanced progress indicators do more than just hold a finger up; they can let people know actual proportionate progress, estimated time to completion, tell them what is going on, and also let them say “never mind” by canceling. If you can do these extra things, you should, as they provide much more transparency into the processing, which gives people knowledge a bit of control over the situation should they change their minds.
There are a handful of common bits of feedback and control you can provide with progress indicators. As a general rule, the more, meaningful feedback you can provide, the better:
Whatever you do, don’t freeze up the UI or provide no indication that the solution is doing processing requested. That leaves them hanging and leads to great confusion and frustration and other bad things.
Infragistics has some tools that can jumpstart your efforts to implement this pattern. Broken down by technology, they are as follows.
Progress Indicators are implemented in all of the following ASP.NET controls and are shown anytime there is an Ajax operation in progress: WebDataGrid, WebGrid, WebDropDown, WebTab, WebDataTree. Check out the samples browser to see it in action.
This pattern can be implemented for other scenarios using WebProgressBar control to update users on a process that is running in the back ground.
You can use the NetAdvantage for Windows Forms WinProgressBar or WinAnimation to implement this pattern. If you download the NetAdvantage for Win Client bundle, you can find a sample in the WinForms sample browser called WinProgressBar to see it in action.
The primary example from Internet Explorer shows a standard progress dialog. It shows the estimated remaining time, the proportion of the work done, what it’s doing, and how to cancel it. It also shows the download speed and adds other contextual actions.

Eclipse shows a progress bar while displaying the component that’s currently loading.

KDE shows an icon for each component that’s being loaded.

Some Web sites take you to a “progress indicator page” where they show an animation, and when the requested information is ready, redirect people to the target page.

FireFox shows two progress indicators. One in the tab where the page is being loaded and another in the right side of the menu bar.
http://www.mozilla.com/firefox/

Flickr’s upload dialog shows a progress bar for each file that’s being uploaded, together with a progress bar for the whole process, and flags each completed file with a check mark.

This example from Infragistics’ Windows Forms toolkit shows the different ways to configure their progress bar.
http://www.infragistics.com/dotnet/netadvantage/winforms.aspx

This sample from Infragistics’ ASP.NET toolkit shows how Ajax-based applications often display indeterminate progress indicators to let people know that they are working on something without being able to convey a sense of relative completeness.
http://www.infragistics.com/dotnet/netadvantage/aspnet.aspx

Quince uses indeterminate progress indicators when loading things from the server if they take long enough (a few hundred milliseconds) to warrant it.
http://quince.infragistics.com

Quince uses determinate progress indicators when uploading files such as example screen shots or pattern documents. The message tells people what’s going on, the fill of the bar gives a sense of the progress, and it has a cancel button should people not want to wait.
Patterns in Interaction Design, Processing Page
Jennifer Tidwell, Progress Indicator
Bruce Tognazzini, First Principles of Interaction Design