有没有一种方法可以在不干扰循环的情况下,从无限时间循环调用具有wait(time.sleep())的函数?我正在尝试运行几个需要等待几秒钟的任务,但问题是,在等待过程发生时,while循环也会停止。这就是我尝试过的--这是我的代码:
import cv2
import time
def waiting():
print("Inside function")
# Running Some Tasks
time.sleep(5)
print("Done sleeping")
def main():
cap = cv2.VideoCapture(0)
while True:
ret, frame = cap.read()
cv2.imshow("Webcam", frame)
k = cv2.waitKey(10)
if k == 32: # Press SPACEBAR for wait function
waiting()
elif k == 27: # Press ESC to stop code
break
cap.release()
cv2.destroyAllWindows()
if __name__ == "__main__":
main()发布于 2021-09-21 12:29:37
发布于 2021-09-21 17:00:29
感谢来自@JLT和@TerePiim的快速回复。以下是任何可能受益于此的人的更新代码:
import cv2
import time
import threading
def waiting():
print("Inside parallel function")
# Running some Tasks
time.sleep(5)
print("Done sleeping")
def main():
cap = cv2.VideoCapture(0)
while True:
ret, frame = cap.read()
cv2.imshow("Webcam", frame)
k = cv2.waitKey(10)
if k == 32: # Press SPACEBAR for wait function
t = threading.Thread(target=waiting)
t.start()
elif k == 27: # Press ESC to stop code
break
cap.release()
cv2.destroyAllWindows()
if __name__ == "__main__":
main()发布于 2021-09-21 12:09:05
你应该使用线程。这看起来就像电脑在同时做这两件事一样。
import threading
t = threading.Thread(target=function)
t.start()https://stackoverflow.com/questions/69268398
复制相似问题