Delphi 2010, OmniThreadLibrary - ошибка при вызове процедуры CreateTask - PullRequest
0 голосов
/ 27 января 2019

Я беру пример 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, которую можно вызывать с этими аргументами Что не такздесь

...