gpt4 book ai didi

performance - CreateProcess 的快速替代方案

转载 作者:行者123 更新时间:2023-12-03 17:27:02 26 4
gpt4 key购买 nike

我正在寻找 Delphi 中 CreateProcess 的快速替代方案,以在 exe 中执行某些计算,包括 XML 中的多个返回值。目前,我正在调用带有特定参数的 C#-exe。这些电话之一需要大约。 0.5 秒 - 方式 太昂贵了,因为这个 exe 需要被调用几百次(不幸的是迭代调用,即多线程不会加速工作)。

我当前的代码如下所示(在 StackOverflow 上找到了获取 exe 控制台输出的解决方案)。

IsExecutable := CreateProcess(
nil,
PChar(WorkDir + Exe + CommandLine),
nil,
nil,
True,
HIGH_PRIORITY_CLASS,
nil,
nil,
StartupInfo,
ProcessInformation);
CloseHandle(StdOutPipeWrite);
if IsExecutable then
try
repeat
WasOK := ReadFile(StdOutPipeRead, Buffer, 255, BytesRead, nil);
if BytesRead > 0 then
begin
Buffer[BytesRead] := #0;
Result := Result + Buffer;
end;
until not WasOK or (BytesRead = 0);
WaitForSingleObject(ProcessInformation.hProcess, INFINITE);
finally
CloseHandle(ProcessInformation.hThread);
CloseHandle(ProcessInformation.hProcess);
end

顺便说一句,我不是很好的 Delphi - 实际上,我有点像“我不知道我在做什么”狗模因之类的东西......

最佳答案

创建新流程的成本很高。除了使用 CreateProcess 之外别无选择。这里没有快速修复方法。没有神奇的按钮可以让流程创建变得超快。

您的问题的解决方案是完全停止创建新流程。在您的流程中执行此任务。

关于performance - CreateProcess 的快速替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12622425/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com