1. A computer-implemented method of processing a synchronous user interface thread by a synchronous program, comprising: detecting that the synchronous program is invoking a synchronous user interface display; blocking the synchronous user interface thread; displaying an asynchronous user interface display over the synchronous user interface display; detecting completion of processing, by the synchronous program, corresponding to the synchronous user interface display; removing display of the asynchronous user interface display; and unblocking the synchronous user interface thread.