Почему Kivy не позволяет многопроцессорным прецессам завершаться в Python? - PullRequest
0 голосов
/ 18 апреля 2020

Я создаю свое первое приложение, и я обнаружил эту проблему с Kivy:

Когда я использую многопроцессорность в приложении Kivy, созданные мной процессы защищены от ".terminate ()". Тот же код, но вне приложения, работает нормально. Что я делаю не так?

Здесь я прилагаю код:

    from kivy.app import App
    from kivy.lang import Builder
    from kivy.uix.screenmanager import Screen
    import multiprocessing
    import time
    from plyer import tts

    kv = Builder.load_file("testup.kv")

    class TestScreen(Screen):
        def speech(self):
            for i in range(10):
                tts.speak(f'{i+1}')
                time.sleep(0.5)

        def start_speech(self):
            self.timing_process = multiprocessing.Process(target=self.speech)
            self.timing_process.start()

        def stop_speech(self):
            self.timing_process.terminate()
            print("timing terminated")


    class TestUp(App):
        def build(self):
            return TestScreen()


    if __name__ == '__main__':
        TestUp().run()
...