Python while while循环直到'try'才执行

时间:2015-05-28 23:31:53

标签: python multithreading while-loop

我在这里循环时有一个非常简单的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',网络摄像头图像将按预期更新,否则,不会从网络摄像头读取图像,也不会引发异常。

0 个答案:

没有答案