首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

delphi 双过程守护

2012-10-31 
delphi 双进程守护这是一个关于父亲与儿子的故事: 父亲的一生:①生一个儿子。如果儿子被杀了,再生一个! ????

delphi 双进程守护
这是一个关于父亲与儿子的故事:

父亲的一生:①生一个儿子。如果儿子被杀了,再生一个!
???????????? ②工作。

儿子的一生:等着父亲被杀,取而代之(成为父亲)。

这则故事已经完整地表达了我想要表达的全部思想,我们可以通过假设“父亲被杀了”或“儿子被杀了”来领会它。

废话少说,看源码:

program Oliver;

uses
?? Windows;

procedure WaitForAncestor;
var
?? MutexName: String;
?? MutexHandle: THandle;
begin
?? MutexName := '110';
?? MutexHandle := OpenMutex(SYNCHRONIZE, True, PChar(MutexName));
?? if (MutexHandle <> 0) then
?? begin
???? WaitForSingleObject(MutexHandle, INFINITE);
???? CloseHandle(MutexHandle);
?? end;
?? CreateMutex(nil, True, PChar(MutexName));
end;

procedure RunSuccessor;
var
?? StartupInfo: TStartupInfo;
?? ProcessInfo: TProcessInformation;
begin
?? while (True) do
?? begin
???? CreateProcess(PChar(ParamStr(0)), nil, nil, nil, True, NORMAL_PRIORITY_CLASS, nil, nil, StartupInfo, ProcessInfo);
???? WaitForSingleObject(ProcessInfo.hProcess, INFINITE);
?? end;
end;

begin
?? WaitForAncestor;
?? RunSuccessor;
end.

热点排行