Normal
you need to use multiple threads. The thing actually doing the work will need to run in the background and provide callbacks to the main thread to report on its progress