在开发过程中,如果要执行一些非常耗时的操作,如下载较大文件等,这时页面就会卡在这里,而用户就会觉得这个应用无响应,给用户一个不好的体验,所以在一些耗时的操作执行时,可以让其异步执行,不影响用户界面的其他操作。
创建一个异步处理asyn_data.py
import asyncio
import threading
import logging
from kivy.event import EventDispatcher
class EventLoopWorker(EventDispatcher):
# 定义唯一事件
__events__ = ('on_pulse',)
def __init__(self, **kwargs):
super().__init__(**kwargs)
# 指定目标
self._thread = threading.Thread(target=self._run_loop)
self._thread.daemon = True
self.loop = None
self._pulse = None
self._pulse_task = None
def _run_loop(self):
self.loop = asyncio.get_event_loop_policy().new_event_loop()
asyncio.set_event_loop(self.loop)
self._restart_pulse()
标签:__,异步,App,Kivy,event,._,import,self,loop
From: https://blog.csdn.net/hcsdny895/article/details/145185079