У меня есть класс Feed, который использует многопроцессорность для запуска захвата и обработки видео. Я хочу остановить захват, который происходит в цикле while, если _camera_running
является ложным, но когда я вызываю метод stop_camera_running
, он не действует, он завершает свое выполнение, но не влияет на _camera_running
} ценность.
class Feed(multiprocessing.Process):
def __init__(self):
self._camera_running = True
def stop_camera_running(self):
self._camera_running = False
def run(self):
while self._camera_running:
# Video camture...
# Process frame...
Мой вопрос: я что-то упустил, чтобы разрешить вызов методов в запущенном процессе? Я также должен добавить, что stop_camera_method
управляется через API, а фиды хранятся в списке, а затем запускаются после их добавления. API имеет доступ к этому списку процессов подачи.
1 ответ
Теперь я не вижу ваш код, где вы use stop_camera_running
Вы можете сделать следующее. Предполагая, что это то место, где вы хотите это остановить
def run(self):
while self._camera_running:
return stop_camera_running
Оператор return в функции завершает ее. Попробуйте.
Похожие вопросы
Новые вопросы
python
Python — это мультипарадигмальный многоцелевой язык программирования с динамической типизацией. Он предназначен для быстрого изучения, понимания и использования, а также обеспечивает чистый и унифицированный синтаксис. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Если у вас есть вопросы о версии Python, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas, NumPy) укажите это в тегах.