您的位置:首页 > 移动开发 > Objective-C

关于WaitForSingleObject

2009-04-29 16:54 337 查看
//这种情况一般用于2进程间有依附关系,类似于Form的ShowModal

//但它的作用不仅仅在进程等待,我们常常用它来做线程同步

//该函数的功能为一直在等待Notepad执行,直到Notepad关闭为止
function WinExecAndWait32(APath: PChar; ACmdShow: Integer;
ATimeout: Longword): Integer;
var
vStartupInfo: TStartupInfo;
vProcessInfo: TProcessInformation;
begin
FillChar(vStartupInfo, SizeOf(TStartupInfo), 0);
with vStartupInfo do
begin
cb := SizeOf(TStartupInfo);
dwFlags := STARTF_USESHOWWINDOW or STARTF_FORCEONFEEDBACK;
wShowWindow := ACmdShow;
end;
if CreateProcess(nil, APath, nil, nil, False,
NORMAL_PRIORITY_CLASS, nil, nil,
vStartupInfo, vProcessInfo) then
Result := WaitForSingleObject(vProcessInfo.hProcess, ATimeout)
else Result := GetLastError;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
WinExecAndWait32('notepad.exe', SW_SHOW, INFINITE);
end;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: