It looks like you are making you main thread sleep when you pause processing, and you end up hanging your UI. You need to have a separate thread for running your audio to text conversion code so that, you can pause that thread as an when required. (Hint: see System.ComponentModel.BackgroundWorker documentation) Please explain how your code works, may be then we will be able to help you better.