【问题标题】:Stop Wt C++ function while it's running在运行时停止 Wt C++ 函数
【发布时间】:2018-04-12 12:30:06
【问题描述】:

我正在使用 Wt (witty) C++ 框架,但遇到了一个如何停止函数运行的问题。如果按钮open_doors_button被点击,它会激活一个函数doors_open_all,需要很长时间才能完成。

如果用户想停止此功能的运行,就会出现问题。 我添加了一个函数 stop_doors_open_all,它改变了一个全局布尔值来停止前一个函数。问题是 func stop_doors_open_all 会在 funcdoors_open_all 完成后被调用,使得 stop 函数无用。

    Wt::WPushButton *open_doors_button = new Wt::WPushButton("open all");
    container_box->addWidget(open_doors_button);
    open_doors_button->clicked().connect(boost::bind(&Servicemode::doors_open_all, this));

    Wt::WPushButton *stop_doors_button = new Wt::WPushButton("stop opening");
    container_box->addWidget(stop_doors_button);
    stop_doors_button->clicked().connect(boost::bind(&Servicemode::stop_doors_open_all, this));

【问题讨论】:

  • 如果您不想阻塞响应 Wt 事件的线程,则需要在自己的线程中运行慢速函数。多线程就是您所描述的。
  • 这可能只是削减它,谢谢!但是,您知道如何将 boost::bind 与线程连接吗?
  • 我已将我对您原始问题的回复发布为正确答案。看来您现在有一个新问题,应该这样发布。

标签: c++ wt


【解决方案1】:

如果您不想阻塞响应 Wt 事件的线程,则需要在自己的线程中运行慢速函数。多线程就是你所描述的。

【讨论】:

    猜你喜欢
    • 2014-01-15
    • 2018-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多