def on_main_thread(func):
if not callable(func):
raise TypeError('expected a callable')
def new_func(*args, **kwargs):
if NSThread.isMainThread(restype=c_bool, argtypes=[]):
return func(*args, **kwargs)
dispatcher = OMMainThreadDispatcher.new()
dispatcher.func = func
dispatcher.args = args
dispatcher.kwargs = kwargs
dispatcher.retval = None
dispatcher.performSelectorOnMainThread_withObject_waitUntilDone_(sel('invoke'), None, True)
retval = dispatcher.retval
dispatcher.release()
return retval
return new_func
评论列表
文章目录