dexter
-
Content Count
5 -
Joined
-
Last visited
Posts posted by dexter
-
-
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.
-
-
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?
-
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?
Stopping a TimedTask
in OmniThreadLibrary
Posted
Same problem, fails with Invalid Window Handle during first .Terminate(1000) call.