【发布时间】:2017-09-22 03:51:14
【问题描述】:
我有一个关于长计算的问题:
在执行我的 GUI 的某些任务时,可能会完成长时间计算。这不是问题,只是需要一段时间——一切正常(至少结果很好)。
困扰我的是,一段时间后我的 GUI 似乎没有响应:例如,在计算过程中显示的我的 ProcessBar 将不会显示,并且在我的 GUI 的标题栏中,文本 “添加了 keine Rückmeldung”(这意味着诸如忙碌、崩溃等 - 抱歉,我不知道正确的翻译,这让我很难在互联网上找到有关该问题的任何信息)。
是否有可能阻止这种行为?
谢谢。
【问题讨论】:
-
如果我们可以检查您的代码,那就太好了。可能是您分配了兆字节的内存,或者值太大。
-
对不起,这是不可能的,因为代码很长。是否有可能通常停止此消息 + 行为?
-
您可能会将其翻译为“无响应”。至于您的问题,可能是因为您在某个时间步骤内执行了太多命令。您可能希望将问题分成几块并在其间进行短暂的停顿,可能使用状态输出等。你需要让这个暂停有点合乎逻辑,以保持它的有机性。
-
你必须将你的计算移动到单独的线程,这样你就不会阻塞 GUI 线程
标签: c++ qt user-interface responsiveness