In my app I respond to a button event by doing some work that could take several seconds, so I am using a UIProgressView to show progress. The problem is that even though I am setting the progress property the UI does not update. I am wondering if this is because I am doing all this in my IBAction method which is called from the button event -- is the problem that the UI will not get updated by changes I make to UIProgressView.property until this method returns? If so, do I then need to do my work in a separate thread, and have the IBAction method launch this thread and then return immediately?