【问题标题】:Using a "beep function" parallel with other commands?使用与其他命令并行的“哔声功能”?
【发布时间】:2016-09-09 00:32:44
【问题描述】:

问题是:我正在为一个学校项目制作一个关于 Code::Blocks(C 编程)的 Snake 版本,但我一直在尝试在单个代码中执行同时执行的操作。长话短说,我想在用户在给定菜单上选择他的选项时播放一首歌(“许多连续的哔声”)。问题是程序必须等到歌曲完成才能扫描给定的变量,就像下面的代码一样。

int main()
{ 
    song();

    scanf(" %c",&option);

    printf("%c", option);

    return 0;
}

任何建议都会受到欢迎。谢谢。

【问题讨论】:

  • 一个明显的选择是使用单独的进程或线程来播放歌曲。
  • 线程是一个非常特定于操作系统的东西,所以如果不知道您使用的是哪个操作系统,我们就无法回答。此外,最好知道您正在使用哪些库来处理 song() 之类的内容。

标签: c function beep


【解决方案1】:

我建议您对要同时拥有的两个进程使用不同的线程

查看this 关于线程和分叉的问题。

希望这会有所帮助:)

编辑:

正如@Barmar 所指出的,仔细查看有关threads 的第一个链接(对您的问题更有用),您需要同时为您想要的每个任务运行一个链接(即哔声和用户输入)。

Forks 会很有用,例如,如果您需要复制游戏进程以拥有多个实例。鉴于您提出的问题,threads 是要走的路。

【讨论】:

  • Fork 创建进程,而不是线程。您链接到的问题是使用pthread_create() 创建线程。
  • 我链接了几个问题。另外两个给出了更多关于分叉的参考。如前所述,第一个讨论线程。
  • 但他根本不需要使用fork()。线程应该可以满足他的需求。
  • 根据您的观察添加了编辑。谢谢你:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-01
  • 2021-11-07
相关资源
最近更新 更多