Let's say that you have a Button. In the Click event handler, you disable the Button, do some work and then re-enable the Button. Now, let's say that you click the Button and then, while the work is being done, you click it again. On the second click, because the UI thread is busy doing something else, the click doesn't get processed. Only once the work is done is the UI thread freed up to process the second click. By then, the Button has been re-enabled so the Click event does get raised.

Now, this could be construed as a bug but it's really an example of why you aren't supposed to perform long-running tasks on the UI thread.