我想使用multiprocessing.Value在多个进程中使用变量,但Python的文档中的语法并不清楚.任何人都可以告诉我应该使用什么作为类型(我的变量是一个字母),以及在哪里放置我的变量的名称?
编辑
我尝试使用管理器在进程之间共享我的信件.但我现在唯一拥有的是Value('ctypes.c_char_p', '(你在这里点击的键)') 在Python Shell中打印但仍然没有声音.使用管理器时,控制台似乎比平常慢一点.在我按键和Value屏幕上显示之间有几乎一秒的延迟.
我的代码现在看起来像这样:
#Import
from tkinter import *
import wave
import winsound
import multiprocessing
#Functions
def key(event):
temp = event.char
manager = multiprocessing.Manager()
manager.Value(ctypes.c_char_p, temp)
hitkey = manager.Value(ctypes.c_char_p, temp)
instance = multiprocessing.Process(target=player, args=(hitkey,))
instance.start()
def player(hitkey):
print(hitkey + "1")
winsound.PlaySound(hitkey + '.wav', winsound.SND_FILENAME|winsound.SND_NOWAIT|winsound.SND_ASYNC)
if __name__ == "__main__":
#Initialisation
fenetre = Tk()
frame = Frame(fenetre, width=200, height=100)
#TK
frame.focus_set()
frame.bind("<Key>", key)
frame.pack()
fenetre.mainloop()
Run Code Online (Sandbox Code Playgroud) 我正在尝试在Python中使用子处理,但我不明白它是否可以与函数一起使用,因为在官方Python文档中,subprocess.Popen的语法接受参数,但我没有看到任何可以与某个功能相关。或者是否有另一种方法可以生成一个专用于没有子进程的函数的新进程?