簡體   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