【发布时间】:2012-07-12 11:29:51
【问题描述】:
我有两个班:A班和B班。
在 A 类中,我有一个私有插槽 Refresh,它每两秒使用 QTimer 调用一次,有助于更新 QTableView 中的值。
B 类由 QThread 定义,在 run 函数中,我借助套接字等从客户端获取数据。
现在的问题是,当run 从客户端获取数据时,QTimer 会更新表并因此在两者之间更新而不更新所有数据。有时它更新较少,反之亦然。如果我们以在获取数据时使用Refresh 函数的方式进行同步,则可以做到这一点。但是我该怎么做呢?因为Refresh 属于另一个类,所以我想到了一种将 QTimer 与睡眠同步的方法,或者我可以只在 B 类中调用该函数的方法。
【问题讨论】:
-
使用共享数据,使用关键部分在 QTableView 中读取和更新它,并改善你的计时器间隔。
-
@spyke 即使我现在我也应该改进我的计时器间隔。这是你告诉我的一件显而易见的事情。我问我可以同步吗,因为我已经在不同的文件中定义了这两个类,所以我什至不能使用全局参数。
-
显然,您可以开始从其他类读取数据并在其他文件中使用互斥锁[数据读取类]。
-
你能给我一个互斥锁的例子,我必须如何声明它,如果这两个函数在两个不同的文件中,我该如何使用它。请帮帮我,我被困住了很久以来@spyke
标签: qt sleep boost-thread