Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何避免在将python多处理脚本链接到GUI时冻结GUI(python脚本应在后台运行)_Python_User Interface_Background_Multiprocessing_Freeze - Fatal编程技术网

如何避免在将python多处理脚本链接到GUI时冻结GUI(python脚本应在后台运行)

如何避免在将python多处理脚本链接到GUI时冻结GUI(python脚本应在后台运行),python,user-interface,background,multiprocessing,freeze,Python,User Interface,Background,Multiprocessing,Freeze,我有一个python脚本链接到gui,它在后台运行。根据gui的输入,python脚本应该会相应地发送消息。但一旦我将我的脚本(我正在使用多处理)链接到gui,屏幕就会冻结。我有什么做错了吗?请给我一个解决方案 from multiprocessing import Process slider_perc= [0.0 ,10.0,20.0,30.0,40.0,50,60.0,70.0,80.0,90.0,100] slider_output_msg=["a","b","c"

我有一个python脚本链接到gui,它在后台运行。根据gui的输入,python脚本应该会相应地发送消息。但一旦我将我的脚本(我正在使用多处理)链接到gui,屏幕就会冻结。我有什么做错了吗?请给我一个解决方案

from multiprocessing import Process
slider_perc= [0.0 ,10.0,20.0,30.0,40.0,50,60.0,70.0,80.0,90.0,100]           
slider_output_msg=["a","b","c","d","e","f","g","h","i","j"]

Slider_dictionary=dict(zip(slider_perc,slider_output_msg))
def change_slider():
    slider_pos=myAppl.Variable(slider).Read()
    slider_pos_round=int(round(slider_pos,-1))

    Desired_slider_Position=dict((k,Slider_dictionary[k]) for k in  [slider_pos_round] if k in Slider_dictionary)
    Desired_slider_Message=Desired_slider_Position.values()
    TxMessage_out=Desired_slider_Message
    status = vt.GetMessageResponse(TxMessage_out,RxPattern,Timeout,Flag)
def main():
    p = Process(target=change_slider())
    p.start()
    p.join()
main()

在windows上,您需要
如果uuuu name\uuuuu==“\uuuuu main\uuuuuu”:
以避免挂起。请看一看-尤其是当我使用该屏幕时,调用
p.join()
将被阻止,直到进程完成。如果您想让它在后台运行,则必须放弃该调用。尝试将来自多处理导入进程的
替换为来自多处理的
。虚拟导入进程(实际上使用线程)以查看是否使用多个进程导致了问题。这并没有解决我的问题。如果您需要
如果\u name__==“\uuuu main\uuuuuuu”:
避免挂起。请查看-尤其是当我使用该屏幕挂起对
p.join()的调用时
将一直阻止,直到进程完成。如果希望它在后台运行,则必须放弃该调用。请尝试将来自多处理导入进程的
替换为来自多处理的
。虚拟导入进程
(实际使用线程)查看是否使用多个进程导致了问题。这并没有解决我的问题