我想使用 multiprocessing.Value 在多个进程中使用一个变量,但是 Python 的文档中的语法并不清楚。谁能告诉我我应该使用什么类型(我的变量是一个字母),以及在哪里放置我的变量名?
编辑
我尝试使用 Manager 在进程之间共享我的信件。但我现在唯一拥有的是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()