【发布时间】:2018-04-01 02:29:48
【问题描述】:
我在一个类中有一个方法,它打开到 API 的连接,然后监听更改。监听更改是使用无限 for 循环完成的,该循环从库中的方法接收事件,用于我正在使用的 API 连接。唯一的问题是无限循环阻塞了需要运行其他东西的主线程。我尝试使用线程,但是 for 循环需要访问我的类中的变量来设置从 API 接收到的更改。我需要一种方法来运行这个无限循环而不阻塞主线程,但仍然能够在主线程的类中设置类变量。
这是需要运行的循环:
for event in events():
event_type = event.event
print(event_type)
if event_type == 'open':
pass
elif event_type == 'put':
# this sets the class variable
self._status = json.loads(event.data)
elif event_type == 'auth_revoked':
raise AuthorizationError(None, msg='The API authorization has been revoked')
elif event_type == 'error':
raise APIError(None, msg=event.data)
【问题讨论】:
-
展示相关代码!
-
@KlausD.添加了循环代码
标签: python multithreading infinite-loop