gpt4 book ai didi

c++ - C++中使用wxthread更新wxframe的内容

转载 作者:行者123 更新时间:2023-11-28 05:39:27 27 4
gpt4 key购买 nike

我是使用线程的新手。我用 C++ 开发了一个程序,使用 wxwidgets 来显示通过网络接口(interface)接收的数据包计数。到目前为止我所做的是:我在wxdialog 中有一个wxbutton。在单击按钮时,将打开一个包含 wxgridwxframewxgrid 包含接口(interface)名称、进出数据包等信息。

现在我需要的是不断更新 packets in 和 packets out 字段。我有一个函数可以计算进出数据包。所以我认为我需要连续执行该功能,直到用户关闭 frame

我希望可以利用 wxthread 来执行此操作。但是不知道如何开始或如何从线程执行函数。有人可以指导我吗..谢谢

最佳答案

工作线程不能直接访问任何 GUI 对象,因此您需要将事件发布到主线程,您可以在主线程中为它们定义事件处理程序,它将执行您需要的任何操作。此类事件有一个方便的基类,称为 wxThreadEvent,您可能会发现它很有用。

或者,特别是如果您使用 C++11,您可以使用 CallAfter()这允许您在主线程上下文中执行回调。这对于 C++11 lambda 尤其有用,因为它允许您将所有代码保存在同一个地方,而不必将其提取到单独的事件处理程序中。

关于c++ - C++中使用wxthread更新wxframe的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37475851/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com