【问题标题】:FLTK Window freezing inconsistentlyFLTK 窗口冻结不一致
【发布时间】:2019-05-28 08:38:26
【问题描述】:

我试图模拟窗口中小部件的“实时”移动,因此使用了 flush 方法,基本上在这个 while 循环期间,Fl Window 将冻结在循环中的随机点,但不是每次代码运行,更像是 3 次。窗口会出现 Notresponsive 错误,然后在循环结束后恢复。

如代码所示,我尝试使用lock函数,以为是主模块试图干扰,但没有产生任何结果

Fl::lock();
while (instructions.size() > 0) {
    instructions[0]->do_it();
    this->redraw();
    Sleep(plotSpeed);
    Fl::flush();
    instructions.erase(instructions.begin());
}
Fl::awake();
Fl::unlock();

【问题讨论】:

    标签: c++ multithreading user-interface fltk


    【解决方案1】:

    我也有这个问题,主要是 OSX 和 Linux 上的行为不同。 但有一个建议:在 Sleep 调用之后,还添加一个 Fl::check() 调用,它应该处理所有待处理的内部消息。或者尝试 Fl::wait()。

    【讨论】:

      猜你喜欢
      • 2020-09-13
      • 1970-01-01
      • 2020-03-26
      • 1970-01-01
      • 2019-12-16
      • 2020-05-25
      • 2013-01-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多