繁体   English   中英

同时运行多个循环

[英]Running multiple loops simultaneously

我正在尝试使用多处理程序同时运行2个循环,但它们似乎只按顺序运行。 当第一个循环启动tkinter的mainloop()进程时,另一个循环直到GUI窗口关闭才开始,然后开始计数循环。 我尝试了多线程和多处理的结果相同。 我需要它们同时运行。 下面是一个简单的示例,演示了此问题。 我正在使用python 2.7.10。

from multiprocessing import Process
from Tkinter import *
import time



count = 0

def counting():
    while True:
        global count
        count = count + 1
        print count
        time.sleep(1)

class App():

    def __init__(self):
        self.myGUI = Tk()
        self.myGUI.geometry('800x600')

        self.labelVar = StringVar()
        self.labelVar.set("test")

        self.label1 = Label(self.myGUI, textvariable=self.labelVar)
        self.label1.grid(row=0, column=0)


app = App()

t1 = Process(target = app.myGUI.mainloop())
t2 = Process(target = counting())

t1.start()
t2.start()

您正在调用函数,并等待它们完成,以便将其结果作为Process目标传递。 而是自己传递函数 -即更改此值:

t1 = Process(target = app.myGUI.mainloop())
t2 = Process(target = counting())

对此:

t1 = Process(target=app.myGUI.mainloop)
t2 = Process(target=counting)

这样,流程可以调用这些函数(在子流程中)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM