def multithread(handler):
"""Multithread decorator"""
def action(*args, **kwargs):
with global_threading_lock:
try:
result = handler(*args, **kwargs)
GLib.idle_add(on_done, result, args[0])
except Exception as e:
print("Error in multithreading:\n%s" % str(e))
def on_done(result, inst):
set_cursor(inst)
if callable(result):
result()
def wrapper(*args, **kwargs):
set_cursor(args[0], Gdk.Cursor(Gdk.CursorType.WATCH))
thread = threading.Thread(target=action, args=args, kwargs=kwargs)
thread.daemon = True
thread.start()
return wrapper
评论列表
文章目录