【问题标题】:wxWidget app hangs when response from backend takes long time当来自后端的响应需要很长时间时,wxWidget 应用程序挂起
【发布时间】:2017-12-14 08:45:02
【问题描述】:

我正在使用wxWizard,在我的第 3 页中,我需要从后端调用一个函数,当该函数需要很长时间才能发送响应时,我的应用程序挂起并且在标题中显示没有响应。一旦从后端函数收到响应,应用程序就会正常运行。为什么会这样?难道我做错了什么?我应该如何使该应用程序不挂起?由于某些网络问题或后端处理时间过长,后端函数的响应延迟。

【问题讨论】:

    标签: c++ wxwidgets


    【解决方案1】:

    this answer。以下是摘录:

    应用程序从 Windows 提供的队列中获取事件。

    如果应用程序有一段时间(5 秒)没有轮询事件队列,例如在进行长时间计算时,则 Windows 假定应用程序已挂起并提醒用户。

    为避免应用程序将昂贵的计算推送到工作线程或拆分处理,并确保定期轮询队列。

    所以,您的代码的问题在于,在您的程序中只有一个线程,即 main 线程。它正在处理所有活动,例如UI 更新、事件处理、响应用户等(非常耗时)。但是当使用它来处理与后端服务器的连接时,它是耗时的。因此,您应该使用另一个线程来处理网络操作。这样 main 线程就可以正常工作了,不会显示它没有响应。

    【讨论】:

      猜你喜欢
      • 2015-02-26
      • 1970-01-01
      • 1970-01-01
      • 2010-11-17
      • 2017-03-16
      • 1970-01-01
      • 1970-01-01
      • 2020-08-21
      • 1970-01-01
      相关资源
      最近更新 更多