我正在为一个问题苦苦挣扎一段时间。我正在构建一个使用主循环的小脚本。这是一个需要用户注意的过程。用户对步骤做出响应,然后使用某些功能会发生一些魔术
除此之外,我想生成另一个进程来监视计算机系统中的某些特定事件,例如按下特定键。如果这些事件发生,那么它将启动与用户提供正确值时相同的功能。
所以我需要做两个过程: - 主循环(允许用户交互) - 后台“事件扫描器”,它搜索特定事件然后对其做出反应。
我通过启动一个主循环和一个守护进程多处理进程来尝试这个。问题是当我启动后台进程时它会启动,但之后我没有启动主循环。我简化了一切以使其更清晰:
import multiprocessing, sys, time
def main_loop():
while 1:
input = input('What kind of food do you like?')
print(input)
def test():
while 1:
time.sleep(1)
print('this should run in the background')
if __name__ == '__main__':
try:
print('hello!')
mProcess = multiprocessing.Process(target=test())
mProcess.daemon = True
mProcess.start()
#after starting main loop does not start while it prints out the test loop fine.
main_loop()
except:
sys.exit(0)