UI fix

这里没太理解。
放到另一个greenlet里执行么？跟直接调用有什么区别？反正要等结果的。
现在也没有用到线程。