如何同时使用两个功能?

sim*_*nny 0 delphi function

嗨,我是新的delphi.如何同时使用这两个功能?function a(...):integer; function b(...):integer;

因为b等到a finhed.

gab*_*abr 7

假设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.