Delphi 2010,OmniThreadLibrary-调用CreateTask过程时出错

时间:2019-01-27 09:29:50

标签: delphi delphi-2010 omnithreadlibrary

我以 02_TwoWayHello 为例。 我将过程添加到代码中。

procedure MyTask (const task: TOmniTask);
var
  msgData: record
    foo: Word;
    bar: Word;
  end;

  msg: TOmniValue;
  msgID: word;
  RandTimeOut: integer;
begin
  repeat
    RandTimeOut: = 5000 {ms} + Random (501) {0..500 ms};
    case DSiWaitForTwoObjects (Task.TerminateEvent, Task.Comm.NewMessageEvent, false, RandTimeOut) of
      WAIT_OBJECT_1: begin {something} end;
      WAIT_TIMEOUT: begin {something} end;
    end; {end case}
  until (Task.Terminated);
end;

通常,它对应于示例本身中的 RunHello 过程。 我进一步更改代码

procedure TfrmTestTwoWayHello.actStartHelloExecute (Sender: TObject);
begin
  FHelloTask: = FMessageDispatch.Monitor (CreateTask (MyTask, 'Mytask')).Run;
// FMessageDispatch.Monitor (CreateTask (RunHello, 'Hello'))
// .SetParameter ('Delay', 1000)
// .SetParameter ('Message', 'Hello')
// .Run;
end;

为什么在编译时出现错误: E2250没有可通过这些参数调用的'CreateTask'重载版本 怎么了?

0 个答案:

没有答案