在 Free-Pascal 中,我将创建一个跨平台控制台程序,它将在一堆线程 (TThread) 中完成大部分工作。
主程序仅用于不时接收一些用户命令并执行这些命令(并保持整个程序运行)。
这个循环作为程序的主循环在 Windows 和 Linux 上都能完美运行,无需使用 cpu:
repeat
Write('> ');
ReadLn(s);
// execute command
until s='exit';
但我需要线程来命令主程序做一些工作。这意味着我需要一种方法来阻止另一个线程的 ReadLn 继续并检查命令标志。如果我能以某种方式发送一个 Enter 键来欺骗 ReadLn 以结束它会很好。
是否有其他方法可以制作跨平台主循环,该循环侦听用户字符串或按键,同时可以从其他线程命令?