如何在Python中运行多个进程而不使用多线程?例如,考虑以下问题:
我们需要制作一个GUI界面,其中有一个“开始”按钮,点击它会启动一个函数(例如打印所有整数),还有一个“停止”按钮,点击它可以停止该函数。
如何在Tkinter中实现此功能?
如何在Python中运行多个进程而不使用多线程?例如,考虑以下问题:
我们需要制作一个GUI界面,其中有一个“开始”按钮,点击它会启动一个函数(例如打印所有整数),还有一个“停止”按钮,点击它可以停止该函数。
如何在Tkinter中实现此功能?
然后你需要将 Button
小部件与启动工作线程的函数绑定。例如:
import time
import threading
import Tkinter as tk
class App():
def __init__(self, root):
self.button = tk.Button(root)
self.button.pack()
self._resetbutton()
def _resetbutton(self):
self.running = False
self.button.config(text="Start", command=self.startthread)
def startthread(self):
self.running = True
newthread = threading.Thread(target=self.printints)
newthread.start()
self.button.config(text="Stop", command=self._resetbutton)
def printints(self):
x = 0
while self.running:
print(x)
x += 1
time.sleep(1) # Simulate harder task
self.running
方法,只需改变其值即可优雅地结束线程。请注意,使用多个线程可以避免在执行printints
时阻塞GUI。你尝试使用过 multiprocessing 模块吗?看起来这是你正在寻找的模块。