Jump to content

dexter

Members
  • Content Count

    5
  • Joined

  • Last visited

Community Reputation

0 Neutral
  1. dexter

    Stopping a TimedTask

    Same problem, fails with Invalid Window Handle during first .Terminate(1000) call.
  2. dexter

    Stopping a TimedTask

    Hi, I have updated the destructor but it did not help: FKeepAlive.Stop; while integer(PeekMessage(Msg, 0, 0, 0, PM_REMOVE)) <> 0 do begin TranslateMessage(Msg); DispatchMessage(Msg); end; FKeepAlive.Terminate(5000); And it fails during call to Terminate(5000) after about 1 second.
  3. dexter

    Stopping a TimedTask

    Hi Eddy, the problem is not in FConn. I have removed the call to FConn.SendStr('') from TimedTask execution, and the problem persists. And exception is raised during FKeepAlive.Terminate, FKeepAlive.WaitFor does not help. See attached the call stack to exception.
  4. dexter

    Stopping a TimedTask

    Hi, The full destructor code is: destructor TjBASEComm.Destroy; begin if Assigned(FKeepAlive) then try FKeepAlive.Stop; FKeepAlive.Terminate(5000); // <-- here error is raised except end; try FConn.Free; except end; inherited; end; As you can see - connection is freed after. Can it be because application is a console app?
  5. dexter

    Stopping a TimedTask

    Hi, In a console application I have defined a timed task, which sends an empty string once per minute to keep alive a connection: FKeepAlive := Parallel.TimedTask.Every(60 * 1000).Execute( procedure() begin FConn.SendStr(''); // will send just ENTER each minute end ); When the application is closing - I'm trying to stop the task with following code: FKeepAlive.Stop; FKeepAlive.Terminate(5000); // <-- here error is raised And I'm getting System Error: Invalid window handle How is the proper way to stop a timed task?
×