Всем привет! я хочу спросить о моей проблеме в imgui на c++. Суть проблемы такова - У меня имеется две кнопки - start, stop. Start отвечает за начало цикла, а stop заканчивает его. Код в цикле который выполняется при кнопке Stop вызывает у меня проблему, если мне надо в коде того цикла заморозить функцию через Sleep - замораживается все imgui, и соответственно я не могу нажать на кнопку stop. Если что-либо не понятно - могу рассказать более подробно. Кусок кода ниже.
bool running = false;
void gui::Render() noexcept
{
ImGui::SetNextWindowPos({ 0, 0 });
ImGui::SetNextWindowSize({ WIDTH, HEIGHT });
ImGui::Begin(
"test",
&isRunning,
ImGuiWindowFlags_NoResize |
ImGuiWindowFlags_NoSavedSettings |
ImGuiWindowFlags_NoCollapse |
ImGuiWindowFlags_NoMove
);
if (!running && ImGui::Button("Start"))
{
running = true;
printf("Начало вывода текста.\n");
}
if (running && ImGui::Button("Stop"))
{
running = false;
printf("Конец вывода текста.\n");
}
if (running) // будет выводится вечно, пока running не станет false, так как меню отрисовывается каждый кадр, отсюда и проверка будет происходить каждый кадр
{
printf("Тут и происходит тот самый цикл после кнопки start");
Sleep(5000);
}
ImGui::End();
ImGui::Render();
}
Пока 5 секунд в цикле не пройдут, я не могу нажать на stop, но и тут проблема, у меня есть доля секунды пока опять начнется цикл, и мне надо ожидать 5 секунд.