通过“热键”进行的关闭和打开过程

用户
from time import sleep

def o1():
    while True:
        print("1 : )")
        sleep(1)

def o2():
    while True:
        print("2 : )")
        sleep(1)

if __name__=="__main__":
    import multiprocessing
    p1 = multiprocessing.Process(target=o1)
    p2 = multiprocessing.Process(target=o2)
    p1.start()
    p2.start()

    def close():
        print("close o1")
        p1.join() #the process does not end as a result

    def start():
        print("start o1")
        try:
            p1.start()
        except AssertionError:
            print("Nothing")

    import keyboard
    keyboard.add_hotkey('q', close)
    keyboard.add_hotkey('e', start) #after q, nothing happens trying to press "e"

我需要关闭该过程,然后通过热键重新打开它。(我在代码中做了两个过程,因为这完全反映了我需要此功能的程序)

我的英语很抱歉:)

cl

首先,p1.join()耐心地等待p1自己完成-由于运行了无限循环,所以它不会这样做。p1.terminate()在这里使用

其次,您无法重新启动已完成的进程(实际上,这是您错误捕获的AssertionError)。这里有两种解决方案:

  1. suspendresume过程,而不是终止它
  2. 开始一个全新的过程

这是第二种方法的实现。由于存在多处理问题,我不得不将代码分割成多个文件:

procs.py

from time import sleep

def o1():
    while True:
        print("1 : )")
        sleep(1)

def o2():
    while True:
        print("2 : )")
        sleep(1)

main.py

from procs import *

if __name__ == "__main__":
    import multiprocessing
    p1 = multiprocessing.Process(target=o1)
    p2 = multiprocessing.Process(target=o2)
    p1.start()
    p2.start()

    def close():
        print("close o1")
        p1.terminate()

    def start():
        global p1
        if p1.is_alive():
            return
        print("start o1")
        p1 = multiprocessing.Process(target=o1)
        p1.start()

    import keyboard
    keyboard.add_hotkey('q', close)
    keyboard.add_hotkey('e', start)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

通过“热键”进行的关闭和打开过程

来自分类Dev

打开过程终止时,文件会自动关闭吗

来自分类Dev

VBScript检查用户的打开过程

来自分类Dev

如何使用相同的热键打开和关闭模态

来自分类Dev

如何设置打开/关闭脚本的热键?

来自分类Dev

ruby popen3-如何在不重新打开过程的情况下重复写入stdin和读取stdout?

来自分类Dev

在Excel 2010中合并单元格中打开过滤器下拉菜单的热键

来自分类Dev

打开过程并将特定图像保存在相关文件夹中

来自分类Dev

在android中查看动画以进行打开和关闭

来自分类Dev

通过导航打开和关闭手风琴

来自分类Dev

通过关闭按钮折叠和打开div

来自分类Dev

通过导航打开和关闭手风琴

来自分类Dev

如何通过单击按钮打开和关闭CSS类

来自分类Dev

如何通过终端打开和关闭“全球黑暗主题”?

来自分类Dev

如何通过单击Android中的按钮打开和关闭视图

来自分类Dev

通过复选框打开和关闭标签页

来自分类Dev

如何通过按钮按下关闭和重新打开 viewController?

来自分类Dev

如何通过java程序打开和关闭应用程序

来自分类Dev

通过Meteor中的SMS进行登录和注册过程

来自分类Dev

对导致服务器因“文件打开过多”而挂起的Java程序进行故障诊断

来自分类Dev

ImageButton打开和关闭

来自分类Dev

打开和关闭菜单

来自分类Dev

ImageButton打开和关闭

来自分类Dev

使jbutton打开和关闭

来自分类Dev

打开和关闭导航

来自分类Dev

通过操作按钮关闭正在进行的Android通知,而无需打开应用

来自分类Dev

Eclipse未打开过时的jvm mac

来自分类Dev

window。打开和关闭几次

来自分类Dev

点击功能打开和关闭

Related 相关文章

热门标签

归档