Gadget
25-01-2004, 02:28 PM
OK, this problem has been bugging me for months and finally I think I sort of know what part of the problem is.
I have a server exe that processes creatures and players.
The server in simple terms is:-
while not bStop do
begin
ProcessCreatures;
Application.ProcessMessages;
end;
On the TIdTCPServer I have an event command for client movement.
When the client moves, it send the packet to this server, which takes 15 ticks to process at worst (not a lot). But... The packet isn't getting processed until as long as a second later. How can I force these damn packets to process?
I have tried loads of application.process messages everywhere. I have put an extra check in the main loop that states 'if time taken for loop run is less than 1 second, then just do application.processmessages for remaider, and even following the suggestions on other forums I tried Sleep(remainder);
Suggestions please!!
My personal theory is that its the Threading used by the Indy components, but how can I up the priority of the indy threads?
I have a server exe that processes creatures and players.
The server in simple terms is:-
while not bStop do
begin
ProcessCreatures;
Application.ProcessMessages;
end;
On the TIdTCPServer I have an event command for client movement.
When the client moves, it send the packet to this server, which takes 15 ticks to process at worst (not a lot). But... The packet isn't getting processed until as long as a second later. How can I force these damn packets to process?
I have tried loads of application.process messages everywhere. I have put an extra check in the main loop that states 'if time taken for loop run is less than 1 second, then just do application.processmessages for remaider, and even following the suggestions on other forums I tried Sleep(remainder);
Suggestions please!!
My personal theory is that its the Threading used by the Indy components, but how can I up the priority of the indy threads?