Run this lenghty process on a separate thread. While the thread is running, the UI will have some kinda animation and could listen to events raised from whithin the thread( operation failed,succeeded, progress etc).
See
http://www.devx.com/DevX/10MinuteSolution/20365 . It might help you.
Vlad