嗨,我是新的delphi.如何同时使用这两个功能?function a(...):integer; function b(...):integer;
因为b等到a finhed.
假设Delphi 2009或更高版本并使用OmniThreadLibrary:
uses OtlParallel;
var
aRes: integer;
bRes: integer;
begin
Parallel.Join(
procedure begin
aRes := a();
end,
procedure begin
bRes := b();
end);
end.
Run Code Online (Sandbox Code Playgroud)
或者对于不喜欢匿名函数的纯粹主义者:
uses OtlParallel;
var
aRes: integer;
bRes: integer;
procedure CalcA;
begin
aRes := a();
end;
procedure CalcB;
begin
bRes := b();
end;
begin
Parallel.Join(CalcA, CalcB);
end.
Run Code Online (Sandbox Code Playgroud)
(如果CalcA和CalcB是方法,它的工作方式相同,而不是普通的程序.)
正如其他人所说,多线程编程领域充满了危险.确保您的两个函数不是修改相同的结构,不是将数据输出到同一目的地,最重要的是,他们没有以任何方式使用GUI.