User-agent: Mozilla Thunderbird 1.0 (Windows/20041206)
I disagree. We get into far more problems using syncExec then asyncExec.
asycnExec means you can continue processing and eventually your runnable
will be executed. syncExec means you have to wait. There have been times
that the UI thread was waiting on something from the other thread and a
deadlocked occured. So it is usually better to use asyncExec.
In addition to this, generally you do not need asyncExec().
Unless you have specific need to use it, in most situation,
you will need "syncExec()".