홈>
창에서 위젯의 "실시간"이동을 시뮬레이션하려고하므로 플러시 방법을 사용합니다. 기본적으로이 동안 루프 Fl 창은 루프의 임의의 지점에서 정지하지만 매번 코드는 3 번에 한 번 더 실행됩니다. 창에 응답하지 않음 오류가 표시되고 루프가 완료된 후 복구됩니다.
코드에서 볼 수 있듯이 잠금 기능을 사용하여 간섭하려고하는 기본 모듈이라고 생각했지만 결과가 없습니다.
Fl::lock();
while (instructions.size() > 0) {
instructions[0]->do_it();
this->redraw();
Sleep(plotSpeed);
Fl::flush();
instructions.erase(instructions.begin());
}
Fl::awake();
Fl::unlock();
- 답변 # 1
관련 질문
- c++ : OpenMP 포크/조인 대기 시간 측정
- c++ : 생산자 소비자 문제 -어떻게 printf의 출력을 동기화합니까?
- c++ : DLL 및 기본 앱 내부의 다중 스레드 환경의 GDIPlus
- c++ : OpenGL 프로젝트를 위한 사용자 인터페이스?
- c++ : weak_ptr의 스레드 안전성 정보
- c++ : 다른 스레드에서 파괴되는 동안 개체를 사용할 수 있습니까?
- Visual Studio 2010에서 C++11 표준을 "활성화"하는 방법은 무엇입니까?
- c++ : 생산자/소비자 문제에서 동기화 대기열을 사용해야 하는 이유
- c++ : std::thread의 sleep_for가 CPU 스핀을 유발합니다.
- c++ : 동일한 공유 데이터에 액세스하는 두 스레드의 실행 순서를 제어하는 방법
이 문제도 있었는데 대부분 OSX와 Linux에서 동작이 다릅니다. 그러나 한 가지 제안 : Sleep 호출 후 보류중인 모든 내부 메시지를 처리 해야하는 Fl :: check () 호출도 추가하십시오. 또는 Fl :: wait ()를 시도하십시오.