consolewakedemo.dpr
来自「delphi开发语言下的源代码分析」· DPR 代码 · 共 57 行
DPR
57 行
program ConsoleWakeDemo;
{$APPTYPE CONSOLE}
uses
ConsoleTimerWake in 'ConsoleTimerWake.pas',
Classes,
Windows;
var
ThreadArr : array of record
Handle, ID : Cardinal;
end;
Str : String;
i : Integer;
iMax : Integer = 1000;
step : Integer = 1;
type
TSyncObj = class
private
InfoString : String;
public
procedure SyncOutputProc;
end;
procedure TSyncObj.SyncOutputProc;
begin
Writeln(InfoString);
end;
function OutThreadFunc(Parameter: TSyncObj): Integer; stdcall;
begin
while true do
begin
Parameter.InfoString := 'need your input: ';
TThread.Synchronize(nil, Parameter.SyncOutputProc);
sleep(step);
end;
end;
begin
SetLength(ThreadArr, iMax);
for i:=0 to iMax-1 do
ThreadArr[i].Handle := CreateThread(nil, 0, @OutThreadFunc, TSyncObj.Create, 0, ThreadArr[i].ID);
repeat
readln(Str);
// do any...
until Str <> '';
for i:=0 to iMax-1 do
CloseHandle(ThreadArr[i].Handle);
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?