speedy> \"Sleep\" fortæller styresystemet at at den pågældende TRÅD \"skal sove\" i den den ønskede tid. Dette bevirker sålede at denne tråd ikke vil \"handle\" evt. events. Med andre ord hvis det er \"hoved tråden\" (selve programmet) der \"sover\" så vil det ikke reagere på at brugeren klikker på en knap. Hvis der i programmet er flere tråde så vil dissse fortsætte uændret.
En MEGET vigtig ting er belastning af CPU\'en. Når du bruger Sleep så er der ikke noget performace tab (tværdigmod) da CPUen er frigivet til alle andre programmer/processer der køre på denne. Din Delay-procedure derimod vil køre CPUen i knæ da den \"stæler\" alt den processer-kraft den kan komme i nærheden af.
Hvilket OS kører du? Hvis du køre NT/W2K prøv så at hive Task-manageren frem. Hvis du blot sætter prioriteten lav nok så vil det ikke betyde \"så meget\" da dit program blot vil ligge sig i baggrunden hvis andre (vigtiger) opgaver skal til fadet.
\"Det rigtige\" ville (hvis du spørger mig) være at lave en tråd der håndtere din kommunikation. Man sålænge du ikke ser det som et problem (if it ain\'t broken don\'t fix it).
ZeroHero> Takker for tilliden :-) Mange af ?????Ex kommanndoerne er \"bare\" nyere/\"bedre\" udgaver af de samme kommandoer, som ofte giver dig mulighed for at angive flere parametre og dermed mere funktionallitet.
Hvis du i din Delphi går i flg. menu: Help->WindowsSDK så kan du søge på hjælpen til diverse windows 32API kald og her kan du finde en beskrivelse på hvordan \"SleepEx\" bruges. Jeg har ikke selv brugt denne, men i følge hjælpen så har du yderligeere et parameter der angiver hvorvidt dit program skal være \"Alertable\":
<SNIP> bAlertable Specifies whether the function may terminate early due to an I/O completion callback function or an APC. If bAlertable is FALSE, the function does not return until the time-out period has elapsed. If an I/O completion callback occurs, the function does not return and the I/O completion function is not executed. If an APC is queued to the thread, the function does not return and the APC function is not executed. If bAlertable is TRUE and the thread that called this function is the same thread that called the extended I/O function (ReadFileEx or WriteFileEx), the function returns when either the time-out period has elapsed or when an I/O completion callback function occurs. If an I/O completion callback occurs, the I/O completion function is called. If an APC is queued to the thread (QueueUserAPC), the function returns when either the timer-out period has elapsed or when the APC function is called. </SNIP>
Speedy> Det kunne da være \"sjovt at se\" hvordan dit program opfører sig hvis du i stedet for dit loop prøver med SleepEx hvor du sætte Alerable til True !? Do share your knowledge !!
Hvad fanden jeg finder mig sku ikke i at være den eneste der bliver afvist i et spm...*GG*
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.