我在这里循环时有一个非常简单的python:
def run(self):
while True:
self.__main_thread.ask('wake',{})
time.sleep(0.25)
在我将代码更改为以下内容之前,不会执行'ask'功能:
def run(self):
while True:
try:
self.__main_thread.ask('wake',{})
except:
print(sys.exc_info())
time.sleep(0.25)
这是一个线程类,我想做一些与主线程并行的工作。
这是'ask'和'wake'功能:
def ask(self, action, arguments):
if hasattr(self, action) and callable(getattr(self, action)):
try:
return getattr(self, action)(arguments)
except:
self.__exception_queue.put(sys.exc_inf())
else:
error = {'errCode':'ERR_00',"logMsg": "Invalid action: requested action '%s' is not implemented." % action}
print (error)
return error
def wake(self):
pic=None
try:
frame = self.webcam.read()[1]
frame = cv2.resize(frame, (300, 300,interpolation=cv2.INTER_CUBIC)
pic = cv2.imencode('.png',frame)[1]
except:
if self.debug:
print ('no picture available')
raise
else:
self._photo_b64 = base64.encodestring(pic)
基本上,我正在尝试使用线程定期从我的网络摄像头读取。 如果我在'run'功能中添加'try'和'except',网络摄像头图像将按预期更新,否则,不会从网络摄像头读取图像,也不会引发异常。