http://bugs.winehq.org/show_bug.cgi?id=23488
--- Comment #6 from Nikolay Sivov bunglehead@gmail.com 2010-07-05 04:44:58 --- You should use a separate thread for user interaction then, that will handle abort commands and won't lock on execution load.
If you need to process events during loops use Application.ProcessMessages() that allows to empty message queue.
Anyway if there's no problem with locking on Windows we need it too, but after 1.2 I guess.