pascal - 取消 ReadLn 输入读数
问题描述
我正在运行 ReadLn 的恒定循环以获取命令输入。但是当涉及到多线程时,我遇到了一个问题:
var command: string;
function ThreadTest(p: pointer) : ptrint;
begin
Delay(500);
WriteLn('THREAD TEST');
end;
{...}
BeginThread(@ThreadTest);
ReadLn(command);
'THREAD TEST' 写在输入字段中。
有什么办法可以防止这种情况发生吗?我不想等待线程完成调用 ReadLn。我必须使用 ReadKey 重写 ReadLn 吗?我将 FreePascal 与 Crt 和 Windows 一起使用。
编辑:我需要将“线程测试”写为新行并将 ReadLn 向下移动 1 个 tcrtcoord,以便正确显示“线程测试”。WriteLn 可以按预期完美运行,除非在 ReadLn 正在进行时调用。
解决方案
推荐阅读
- unix - 使用unix中txt文件中存在的名称重命名目录中的多个文件
- java - Eclipse Jar 文件没有资源
- python - itertools 排列组合
- android - android:gradle 产品风味搞砸了 minSdkVersion
- java - 在java中从键盘获取多行然后单个字符
- c - 在低级 c 图形代码中管理 linux framebuffer(fb0) 权限
- python - 在每个火车时期后进行评估
- python - 从一个 python 脚本到另一个传递一个简单参数的简单调用
- java - 休息服务返回 204 而不是 200
- jquery - 数据表 ajax.reload() 和 .clear() 不工作