我想创建一个音乐播放器,但我正在使用机器人。
我的机器人应该进行一系列动作(说话、移动等),并且我需要能够随时停止它(为了安全)。
我正在使用 C++ 和 GTK。
我有一个PLAY链接到该功能的按钮play_playlist
:
void play_playlist ()
{
std::deque<history_record>::iterator it = list_to_play_.begin();
while (!g_stop_ && it != list_to_play_.end())
{
play_action(it); // take time to execute (simulate using sleep 3sec)
it++;
}
}
和一个STOP链接到该功能的按钮set_stop_to_false
:
void set_stop_to_true()
{
g_stop_ = true;
}
当我单击PLAYGUI 冻结并且我无法单击STOP.
如何让我的播放列表运行并能够单击 GUI?(即 GUI 应该是响应式的)
我最大的希望是一个线程,但我不确定如何正确使用它。