【发布时间】:2020-02-03 14:24:01
【问题描述】:
1) 我的目标是什么: 我正在创建一个应用程序,它应该每 60 秒从 ModBusServer 读取一次数据,将这些数据附加到 Graphs 中,然后在应用程序关闭时将数据保存到 excel 文件中。
网站说明: 从 ModBusServer 读取数据并将其附加到图形的过程应在按下开始按钮后开始。 并在按下停止按钮或 ModBusServer 发送停止请求后结束。
2) 我目前所拥有的: 我以“GUI_komora”类的形式创建了没有任何重大问题的 GUI。 那里的一切都很好。
3) 问题是什么: 但是现在我迷失了如何处理“每 60 秒读取一次数据”,以及如何控制应用程序。
我对线程进行了一些研究,但我仍然对如何在我的应用程序中实现这一点感到困惑。 我在这个tutorial 中学习了如何让函数同时运行。 还有如何使用这个question每隔几秒调用一次函数。
但它们都没有帮助我学习如何控制应用程序的整体流程。
如果您可以将我重定向到某个地方或告诉我更好的方法,我会非常高兴。
我的一些代码:
from tkinter import *
from GUI_komora import GUI
root = Tk()
my_gui = GUI(root) #my GUI class instance
#main loop
root.mainloop()
"""
How do I achieve something like this???
whenToEnd = False
while whenToEnd:
if step == "Inicialzation":
#inicializace the app
if step == "ReadData":
#read data every 60 seconds and append them to graphs
if step == "EndApp"
#save data to excel file and exit app
whenToEnd = True
"""
【问题讨论】:
-
读取数据的代码执行需要多长时间?它会运行几秒钟,还是只运行几毫秒?答案将有助于确定适当的解决方案。如果它只是几百毫秒或更短,则不需要线程。
-
大约在一秒钟左右。但有时可能会更长,因为 modbuserver 是通过以太网连接的。
-
如何在不使用线程的情况下解决这个问题?我真的不知道...:/
标签: python-3.x multithreading tkinter