两个 ncurses 窗口并行运行

Posted

技术标签:

【中文标题】两个 ncurses 窗口并行运行【英文标题】:two ncurses window running parrallel 【发布时间】:2020-08-23 07:56:51 【问题描述】:

我目前正在制作一个打字游戏项目,我想在顶部有一个倒计时时钟窗口,在底部运行一个打字窗口,它必须并行运行。

我现在能想到的唯一方法是多线程,我研究过它似乎我必须使用use_screen()use_window() 之类的东西才能在ncurses 中支持多线程。但我找不到任何关于它的例子或教程。

所以我的问题是谁能给我一个在 ncurses 中使用多线程的例子?

或者是否有不同的方法在 ncurses 中进行并行执行?

顺便说一句,我使用 c++,但任何语言都可以。

【问题讨论】:

【参考方案1】:

对于您的预期用例,您可以在主线程中创建 2 个窗口。一个用于倒计时窗口,一个用于打字窗口。使用newwin,您将获得 2 个WINDOW*。然后您可以设置窗口的所有属性。

然后,你可以为你的倒计时窗口编写代码,

此代码将以std::async 开头,它将各自的WINDOW* 作为其参数之一。相关代码将使用给定参数将倒计时值写入窗口。

其余代码使用主窗口的输入和输出函数。

恕我直言,这将是最简单的方法。

【讨论】:

以上是关于两个 ncurses 窗口并行运行的主要内容,如果未能解决你的问题,请参考以下文章

为啥这个文本没有被 ncurses 着色?

PHP ncurses窗口

Ncurses 和 gdb 屏幕在调试时重叠。所以我想把两个屏幕分开

NCurses – getstr() 和功能键

C指针原理(29)-Ncurses-文本终端的图形

是否可以让 NCurses CDK 矩阵动态调整到终端窗口的大小?